1 treedon OP 有 8 个人查看了,都没回复 是我的问题太 low 了嘛? |
![]() | 2 sonyxperia 2017-09-20 14:34:42 +08:00 需要用到两张表关联查询吗? |
3 mxm145 2017-09-20 14:37:51 +08:00 如果是每天都需要的数据,是不是应该专门建表存储,每次订单完成去更新一次 |
![]() | 4 huijiewei 2017-09-20 14:39:32 +08:00 SELECT SUM(amount) FROM order GROUP BY userId 用 GROUP BY |
![]() | 5 F281M6Dh8DXpD1g2 2017-09-20 14:39:37 +08:00 t/380477#reply11 提问之前先搜索 |
![]() | 6 lwldcr 2017-09-20 14:39:43 +08:00 join 吧 |
8 treedon OP @sonyxperia 不用关联的 order 表有 user_id 有下单时间 有订单价格 |
![]() | 11 b821025551b 2017-09-20 14:42:02 +08:00 你没有指出的关键点是,user 表和 order 表是如何进行关联的。 |
12 treedon OP @b821025551b 因为不是特别重点吧 |
![]() | 13 torbrowserbridge 2017-09-20 14:44:14 +08:00 via Android 数据量小直接 sql 查询,数据量大可以离线统计,甚至上流式数据处理 |
14 treedon OP @b821025551b user 表的 id 关联 order 表的 user_id |
![]() | 15 b821025551b 2017-09-20 14:50:53 +08:00 @treedon #14 那不就是 4 楼的 group by user_id 么 |
16 treedon OP @liprais SELECT FROM_UNIXTIME('create_time')AS day_day, sum(total_price) AS day_sum FROM order WHERE user_id = 100 GROUP BY FROM_UNIXTIME('create_time'); 我的 create_time 存的是时间戳 但是输出是 1970 |
![]() | 17 F281M6Dh8DXpD1g2 2017-09-20 15:06:30 +08:00 @treedon 贴数据 |
18 treedon OP @liprais 这里不能截图 好憋屈 order 表的数据是 user_id create_time total_price 100 1505871005(2017-09-20) 10 100 1505810684(19) 20 100 1505724284(18) 30 输出的就是 day_day day_sum 1970-01-01 08:00:00.000000 51.30 |
![]() | 19 b821025551b 2017-09-20 15:15:52 +08:00 使用 FROM_UNIXTIME 这个函数前先查查是怎么用的好伐,这里你可以用 DATE_FORMAT(create_time,'%y%m%d') |
![]() | 20 F281M6Dh8DXpD1g2 2017-09-20 15:16:19 +08:00 @treedon 我这里是没问题的 mysql> select from_unixtime(1505871005); +---------------------------+ | from_unixtime(1505871005) | +---------------------------+ | 2017-09-20 09:30:05 | +---------------------------+ 1 row in set (0.00 sec) |
21 treedon OP @liprais 我单独使用 select from_unixtime(1505871005); 是没问题的 但是写 SELECT from_unixtime('create_time') AS day_day, sum(total_price) AS day_sum FROM zjr_deal_order WHERE user_id = 999999 GROUP BY from_unixtime('create_time'); 执行结果就是 1970-01-01 08:00:00.000000 26.50 |
![]() | 22 goddoger 2017-09-20 15:22:52 +08:00 SELECT SUM(jine) as 总金额 ,username from `order` WHERE addtime='2017-09-10' GROUP BY username |
![]() | 23 F281M6Dh8DXpD1g2 2017-09-20 15:24:37 +08:00 ![]() |
24 oongxx 2017-09-20 18:00:25 +08:00 select sum(amount) ... group by userid, orderdate |
![]() | 25 Cabana 2017-09-20 20:33:51 +08:00 via Android 这种事情不是数据库视图干的活吗?直接 SQL 联表查呗 |
![]() | 26 wyk52012 2017-09-21 10:46:04 +08:00 SELECT DATE(gmt_create_date) AS 'order_create_date', SUM(order_total_amount) AS 'daily_order_amount' FROM t_101_s_021_order WHERE gmt_create_date BETWEEN '2017-08-01' AND '2017-09-20'br /> AND user_id = 'you user id' GROUP BY order_create_date; > 指定时间查询区间 > 指定用户 > 按照日期切割 > 获取单个用户某个日期段内每日的订单额 |
![]() | 27 liuzhen 2017-09-21 11:09:42 +08:00 SELECT date('create_time') AS day_day, sum(total_price) AS day_sum FROM `order` WHERE user_id = 999999 and create_time BETWEEN '2017-08-01' AND '2017-09-20' GROUP BY date('create_time'); |
28 treedon OP @liprais 可以了...from_unixtime(create_time) 括号里面不能加那个引号,估计当成字符串了,没当成字段名 昨天想回复您的,但是 v2 站说我回复太频繁, 禁了我回复 t t 现在应该可以回复了 |
![]() | 30 F281M6Dh8DXpD1g2 2017-09-22 17:28:04 +08:00 @treedon 有问题直接问,别人看到也会帮助你的 |
32 guojxx 2018-01-19 15:17:25 +08:00 那你可能需要 sql 中有一个 叫做标量函数 month() year()之类的 直接统计 |