Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 查找每天在每个国家/地区首次订购的用户数_Mysql_Sql - Fatal编程技术网

Mysql 查找每天在每个国家/地区首次订购的用户数

Mysql 查找每天在每个国家/地区首次订购的用户数,mysql,sql,Mysql,Sql,我有两张桌子,看起来像: user_dataset +------+---------------+------------+ |userid| Register_time | Country | +------+---------------+------------+ | 1 | 03/02/17 | TW | | 2 | 20/03/17 | SG | | 3 | 26/03/17

我有两张桌子,看起来像:

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  |   
|....... | ...    |      ...   |  ...   |     ...    |   
+--------+--------+------------+--------+------------+
我被告知写一个SQL语句,以查找每天在每个国家/地区第一次下单的用户数量。

我不明白这个问题,有人能给我解释一下输出是什么样子的吗?我不是在问问题,但如果有人愿意写,那就太好了


提前感谢

将表
user\u dataset
加入到一个查询中,该查询从
order\u 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

如果有一个用户在同一天下了2个订单,则使用
count(不同的用户ID)
代替
count(*)
提示:聚合数据以获取每个用户的最早日期。然后加入这个国家,再次聚合。向后阅读。对于每一天,一定要找到拥有第一个订单的用户。聚合。
SELECT 
    country,
    order_time,
    COUNT(*)
FROM user u
LEFT JOIN( 
    SELECT 
        userid,
        MIN(order_time) AS min_date
    FROM order
    GROUP BY userid
) o
    ON u.userid = o.userid
LEFT JOIN order ot
    ON u.userid = ot.userid
WHERE order_time = min_date
GROUP BY country, order_time
ORDER BY country;