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
liprais 2017-09-20 14:39:37 +08:00
|
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 |
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
liprais 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
liprais 2017-09-20 15:24:37 +08:00 1
|
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' 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 现在应该可以回复了 |
32
guojxx 2018-01-19 15:17:25 +08:00
那你可能需要 sql 中有一个 叫做标量函数 month() year()之类的 直接统计
|