遇到一个 mysql 问题,如果解决问题红包 50 元。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xiaowenxi
V2EX    问与答

遇到一个 mysql 问题,如果解决问题红包 50 元。

  •   xiaowenxi 2020 年 6 月 6 日 3208 次点击
    这是一个创建于 2065 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有一张表

    id good_id good_value create_time 1 101 5 2020-06-06 00:38 2 101 10 2020-06-06 00:38 3 102 8 2020-06-05 01:01 4 102 10 2020-06-06 00:38 

    现在要求如果 create_time 相同的情况下,并且 good_id 相同的情况下就将 good_value 相加在一起.

    最终查询的 结果应该是:

    id good_id good_value create_time 1 101 15 2020-06-06 00:38 3 102 8 2020-06-05 01:01 4 102 10 2020-06-06 00:38 

    可以用 sql 查询出来吗?我在网上找了一圈都没找出解决方案来,如果有同好门给出查询语句,直接支付宝 发 50 元红包。

    18 条回复    2020-06-07 08:37:05 +08:00
    ez4hc
        1
    ez4hc  
       2020 年 6 月 6 日
    SELECT id,good_id,sum(good_value),create_time FROM good_6_6 GROUP BY good_id,create_time;
    xuuuu
        2
    xuuuu  
       2020 年 6 月 6 日
    sum(good_value) groupby create_time,good_id
    zhaohy
        3
    zhaohy  
       2020 年 6 月 6 日 via iPhone
    来晚了,哈哈
    lxk11153
        4
    lxk11153  
       2020 年 6 月 6 日
    粗活我来,我拿手滴,以后请直接 call cXEvd3g6IDQ0Mzk3NDE1OQ== (base64)
    xiaowenxi
        5
    xiaowenxi  
    OP
       2020 年 6 月 6 日
    @ez4hc 稍等,因为我是由其他项目, 项目实际,数据大约有 4 万多条和 7 万多条,等我联查下,看下问题出哪了?可以给我个微信吗?我感觉查出来的数据还是不对,也可能是我描述问题有错误
    noahsophie
        6
    noahsophie  
       2020 年 6 月 6 日
    微信:bm9haF9zb3BoaWU= 免费
    miaeLKK
        7
    miaeLKK  
       2020 年 6 月 6 日 via Android   1
    我怀疑你是来做慈善的,哈哈
    ez4hc
        8
    ez4hc  
       2020 年 6 月 6 日
    @xiaowenxi QW55V2F5XyUyMGhjJTBB
    qiayue
        9
    qiayue  
    PRO
       2020 年 6 月 6 日
    group by 可解决,如果数据不对,你先建一张小表测试下
    lotosbin
        10
    lotosbin  
       2020 年 6 月 6 日
    SELECT min(id),good_id,sum(good_value),create_time FROM good_6_6 GROUP BY good_id,create_time;
    Xusually
        11
    Xusually  
       2020 年 6 月 6 日
    其实先不说 sql 的事儿,楼主找了这么长时间,其实完全可以程序遍历一遍这个表,跑一遍对比汇总另存一张表就结束了

    结果表还可以用来和单条 sql 对照,不是美滋滋
    fareware
        12
    fareware  
       2020 年 6 月 6 日
    这种难度的话...,我愿意做长期 SQL 外包
    DelayNoMay
        13
    DelayNoMay  
       2020 年 6 月 6 日
    这种难度也太难了吧
    DelayNoMay
        14
    DelayNoMay  
       2020 年 6 月 6 日 1
    @ez4hc 你这条 sql 运行会报错的,多查了一个 id 的字段
    dallaslu
        15
    dallaslu  
       2020 年 6 月 6 日
    啊痛失 50 元
    xiaowenxi
        16
    xiaowenxi  
    OP
       2020 年 6 月 7 日
    我搞了一天了,还没有弄出来,我还是把原想法说出来把。
    现在有 2 张表,一张是 invoice 表,一张是 charge 表,多对多的关系,我现在需要导出大约 4.5w 条数据,
    我需要获取的数据是:invoice_number/ ctime/account_id/amount/ 这 4 个数据就可以了,总共大约 4.5w 个 invoice_number
    最难的部分 是价格是动态生成的,有其他几个表相加得到的。
    第一张表:
    ```
    id invoice_number date type from_date to_date ctime account_id
    75560 101560 2020-06-01 1 2020-06-01 2020-06-01 2020-06-01 09:59:46 2162
    75686 101686 2020-06-02 1 2020-06-02 2020-06-02 2020-06-02 13:06:02 2162

    ```


    ```
    id shipment_id account_id amount describe ctime type val_type value status
    1350092 69149374 2162 307.03 base rate 2020-06-01 09:59:45 1 2 307.03 0
    1350093 69149374 2162 46.05 markup rate 2020-06-01 09:59:45 1 1 15.00 0
    1350094 69149374 2162 353.08 base and markup rate 2020-06-01 09:59:46 1 2 353.08 1
    1350095 69149374 2162 24.72 Fuel Surcharge 2020-06-01 09:59:46 2 1 7.00 1
    1350096 69149374 2162 5.00 FTZ 2020-06-01 09:59:46 2 2 5.00 1
    1350097 69149374 2162 66.65 Emergency Surcharge 2020-06-01 09:59:46 2 3 4.30 1
    1350098 86932456 2162 45.92 base rate 2020-06-01 09:59:47 1 2 45.92 0
    1350099 86932456 2162 4.59 markup rate 2020-06-01 09:59:47 1 1 10.00 0
    1350100 86932456 2162 50.51 base and markup rate 2020-06-01 09:59:47 1 2 50.51 1
    1351155 35763591 2162 86.00 Other(Out of delivery surcharge) 2020-06-02 13:06:02 3 2 86.00 0 1

    ```

    得到的最终的数据是
    ```
    invoice_number ctime amount
    101560 2020-06-01 09:59:46 2162 499.96 这个 499 的价格是 几单不同 shipment 单 id 下 status 为 1 同一账户 id 2162 ,时间是一定小范围 小于 1 小时 的价格相加得到的 = 353.08 +24.72+5.00+66.65+50.51 =499.96

    101686 2020-06-02 13:06:02 2162 86.00 这个单得到的少。

    ```

    希望我已经描绘清楚了。 因为今天晚上我必须要搞定。
    xiaowenxi
        17
    xiaowenxi  
    OP
       2020 年 6 月 7 日
    我擦,我肝了一晚上,我肝出来了,由于查询的时间问题,只能半年半年的查,然后导出到 csv,在这贴下代码

    select a.account_id,a.shipment_id,a.value,b.invoice_number,a.registerTime from(select account_id,shipment_id,sum(account_amount) as value, DATE_FORMAT(ctime,'%Y-%m-%d') as registerTime from w2s_charge_datail where `status` = 1 and ctime BETWEEN '2017-1-1 00:00:00' and '2017-6-1 00:00:00' GROUP BY account_id,registerTime) a LEFT JOIN (select invoice_number,account_id,DATE_FORMAT(ctime,'%Y-%m-%d') as cTime from w2s_invoice where type = '1' and ctime BETWEEN '2017-1-1 00:00:00' and '2017-6-1 00:00:00') b on a.registerTime = b.cTime and a.account_id = b.account_id GROUP BY invoice_number DESC;
    xiaowenxi
        18
    xiaowenxi  
    OP
       2020 年 6 月 7 日
    @miaeLKK 应该不简单把。我把最新的情况给弄出来了。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2059 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 52ms UTC 12:21 PVG 20:21 LAX 04:21 JFK 07:21
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86