Hzm*_*zmy 7 mysql sql count left-join
CREATE TABLE installs(
id INT, PRIMARY KEY(id),
created DATETIME)
CREATE TABLE uninstalls(
id INT, PRIMARY KEY(id),
created DATETIME,
install_id INT)
Run Code Online (Sandbox Code Playgroud)
SELECT DATE(installs.created),
COUNT(installs.id),
COUNT(uninstall.id)
FROM installs
LEFT JOIN uninstalls ON uninstalls.install_id = installs.id
GROUP BY DATE(installs.created)
Run Code Online (Sandbox Code Playgroud)
DATE(installs.created) | COUNT(installs.id) | COUNT(uninstalls.id)
2012-11-20 | *installs on date* | *uninstalls on date*
Run Code Online (Sandbox Code Playgroud)
所以 - 我每天都在查看当天发生的安装/卸载次数.
"安装"的数据每天都是正确的.但是每天"卸载"的数据遗憾地是不正确的.
分别计算安装和卸载,并为每个安装和卸载添加一列(零)作为其他计数。然后将两者结合起来UNION,再次按日期分组并取每个日期的最大值(以消除添加的零):
SELECT created as date, max(installs) as installs, max(uninstalls) as uninstalls
FROM
(SELECT created, count(*) AS installs, 0 AS uninstalls
FROM installs
GROUP BY created
UNION ALL
SELECT created, 0 AS installs, count(*) AS uninstalls
FROM uninstalls
GROUP BY created) c
GROUP BY created
ORDER BY created
Run Code Online (Sandbox Code Playgroud)