我有 2 个表,看起来像:
user_dataset
+------+---------------+------------+
|userid| Register_time | Country |
+------+---------------+------------+
| 1 | 03/02/17 | TW |
| 2 | 20/03/17 | SG |
| 3 | 26/03/17 | PH |
| 4 | 05/02/17 | VN |
| 5 | 01/10/17 | ID |
| 6 | 03/09/17 | MY |
| ...| ........ | ... |
+------+---------------+------------+
order_dataset
+--------+--------+------------+--------+------------+
|orderid | userid | itemid | gmv | order_time |
+--------+--------+------------+--------+------------+
|1030132 | 3 | 3366770 | 27,0 | 24/04/17 |
|1030137 | 5 | 6130641 | 69,0 | 02/02/17 |
|1030147 | 1 | 6770063 | 87,0 | 25/04/17 |
|1030153 | 6 | 4193426 | 82,0 | 05/11/17 |
|1030155 | 4 | 8825994 | 29,0 | 03/07/17 |
|1030160 | 2 | 5660916 | 44,0 | 30/01/17 |
|....... | ... | ... | ... | ... |
+--------+--------+------------+--------+------------+
Run Code Online (Sandbox Code Playgroud)
有人告诉我写一条 SQL 语句来查找每天在每个国家/地区首次下订单的用户数量。
我不明白这个问题,有人可以向我解释输出是什么样的吗?我不是在问查询,但如果有人愿意写它会很棒。
先感谢您
将表连接user_dataset到从order_dataset每个userid和聚合的第一个订单的日期返回的查询:
select u.country, o.order_time, count(*) counter
from user_dataset u inner join (
select userid, min(order_time) order_time
from order_dataset
group by userid
) o on o.userid = u.userid
group by u.country, o.order_time
Run Code Online (Sandbox Code Playgroud)
如果有用户在同一天下过 2 个订单的情况,则不要count(*)使用count(distinct userid).
| 归档时间: |
|
| 查看次数: |
1947 次 |
| 最近记录: |