У меня есть 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
Является ли это возможным? Как исправить запрос?
Я нахожусь здесь в 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