加入后分组并计数*

问题描述

以下代码一个充满日期的表与一个具有“ X”日期注册表的表连接起来。

SELECT
  d.date as 'fecha',IFNULL(q.name,0) as 'nombre'
FROM dates d
LEFT JOIN quarantine_registry q
ON d.date = q.change_date where d.date <= CURDATE() order by d.date desc

输出类似于:

fecha - nombre

2020-09-08 - 0  
2020-09-07 - ggg
2020-09-07 - dwdw  
2020-09-07 - test  
2020-09-07 - Uuu  
2020-09-07 - aaaacdac  
2020-09-07 - asaaws  
2020-09-07 - dwdwdw  
2020-09-07 - vsed  
2020-09-07 - ppp  
2020-09-07 - test  
2020-09-07 - Ygg  
2020-09-07 - Cc  
2020-09-07 - 0      
... 

我忘记了:我只想加入quarantine_registry中具有change_type ='add'

注册

我该如何计算每个日期拥有的注册数量并按日期分组?

谢谢您的时间

解决方法

我该如何计算每个日期拥有的注册表数量并按日期分组?

您似乎想要聚合:

select d.date,count(q.change_date) cnt
from dates d
left join quarantine_registry q on d.date = q.change_date 
where d.date <= current_date
group by d.date

基本上,查询从日期表开始,并尝试带入相应的注册表行。然后按日期对数据集进行分组,我们计算在注册表中找到了多少行(如果没有匹配的行,则得到0的计数)。

,

我猜null不算

SELECT
  d.date as 'fecha',count(*)
FROM dates d
LEFT JOIN quarantine_registry q
ON d.date = q.change_date where d.date <= CURDATE()
where q.name is not null
group by d.date
order by d.date desc
,
SELECT d.date AS 'fecha',count(id) AS registeries_count
FROM dates d
LEFT JOIN quarantine_registry q ON d.date = q.change_date
WHERE d.date <= CURDATE()
GROUP BY d.date
ORDER BY d.date DESC

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...