我有SELECT可以计算跨月的离散元素。但是,如果很少有具有相同名称且在不同月份中的元素,则DISTINCT会分别在每个月中起作用
SELECT
YEAR( `date` ) AS "year",
MONTH( `date` ) AS "month",
count( DISTINCT name ) AS "howmany"
FROM
`XYZ`
GROUP BY
name,
year,
month
ORDER BY
`date` DESC
数据:
_________________________
|01-01-2018 | name1 |
|01-02-2018 | name1 |
返回:
2018 | 01 | 1
2018 | 02 | 1
我想要:
2018 | 02 | 2
有可能吗?如何解决查询?
答案 0 :(得分:1)
我在这里使用Oracle,没有MySQL方便使用,因此您必须调整查询,但希望您能想到:
select XYZ.d, XYZ.name, a.howmany
from XYZ
join (select name, count(name) as howmany from XYZ group by name ) a
on XYZ.name = a.name