【发布时间】:2017-03-15 15:01:16
【问题描述】:
我有以下两张表:
- 表 TempUser22:57,000 行:
+------+-----------+ | Id | Followers | +------+-----------+ | 874 | 55542 | | 1081 | 330624 | | 1378 | 17919 | | 1621 | 920 | | 1688 | 255463 | | 2953 | 751 | | 3382 | 204466 | | 3840 | 273489 | | 4145 | 376 | | ... | ... | +------+-----------+
- 表 temporal_users:总共 10,000,000 行,3200 行,其中 Date=2010-12-31:
+---------------------+---------+--------------------+ | Date | User_Id | has_original_tweet | +---------------------+---------+--------------------+ | 2008-02-22 12:00:00 | 676493 | 2 | | 2008-02-22 12:00:00 | 815263 | 1 | | 2008-02-22 12:00:00 | 6245822 | 1 | | 2008-02-22 12:00:00 | 8854092 | 1 | | 2008-02-23 12:00:00 | 676493 | 2 | | 2008-02-23 12:00:00 | 815263 | 1 | | 2008-02-23 12:00:00 | 6245822 | 1 | | 2008-02-23 12:00:00 | 8854092 | 1 | | 2008-02-24 12:00:00 | 676493 | 2 | | ............. | ... | .. | +---------------------+---------+--------------------+
我正在对这些表运行以下连接查询:
SELECT sum(has_original_tweet), b.Id
FROM temporal_users AS a
RIGHT JOIN TempUser22 AS b
ON a.User_ID = b.Id
GROUP BY b.Id;
按预期返回 57,00 行,第一个字段的答案为 NULL:
+-------------------------+------+ | sum(has_original_tweet) | Id | +-------------------------+------+ | NULL | 874 | | NULL | 1081 | | 135 | 1378 | | 164 | 1621 | | 652 | 1688 | | 691 | 2953 | | NULL | 3382 | | NULL | 3840 | | NULL | 4145 | | ... | .... | +-------------------------+------+
但是,当添加指定日期的 WHERE 行时,如下所示:
SELECT sum(has_original_tweet), b.Id
FROM temporal_users AS a
RIGHT JOIN TempUser22 AS b
ON a.User_ID = b.Id
WHERE a.Date BETWEEN '2010-12-31-00:00:00' AND '2010-12-31-23:59:59'
GROUP BY b.Id;
我收到以下答案,只有 3200 行,第一个字段中没有任何 NULL。
+-------------------------+---------+ | sum(has_original_tweet) | Id | +-------------------------+---------+ | 1 | 797194 | | 1 | 815263 | | 0 | 820678 | | 1 | 1427511 | | 0 | 4653731 | | 1 | 5933862 | | 2 | 7530552 | | 1 | 7674072 | | 1 | 8149632 | | .. | .... | +-------------------------+---------+
我的问题是:对于给定日期,当给定日期的 temporal_user 中不存在 has_original_tweet 时,如何为 TempUser22 中的每个用户获取大小为 57,000 行的答案? /p>
谢谢。
【问题讨论】:
-
你确定你得到的空值的日期超出了你指定的范围吗?