Pogrupowanie nowych kont po dacie i markecie

0

Witam wszystkich.
Dzięki wczorajszej poradzie od @AnyKtokolwiek została złowiona sowita SQL'owa rybka.
Mam natomiast podobny problem - również wyciągnięcie nowych użytkowników z podziałem na miesiące (i po marketach), ale już nie z tabeli identity tylko z własnoręcznie zrobionej tabeli przez kogoś mi nieznanego.
Stworzyłem sobie widok, dzięki któremu mam tak wyglądające dane:

UserId int,
Market nvarchar(50),
Date

Chcę wyciągnąć użytkowników pogrupowanych po miesiącach, a w drugim przypadku po miesiącach i marketach.

Zapytanie

SELECT COUNT(distinct UserId) view_GetNbrOfNewUsers

zwraca mi 6320 nowych użytkowników, natomiast moje próby zwracają po kilkanaście tysięcy.
Moje próby wyglądały w stylu:

SELECT COUNT(distinct UserId) NewUsers, Market, Date
FROM view_GetNbrOfNewUsers
GROUP BY Market, Date
ORDER BY Date

co zwróciło mi 13876 rekordów. Łączna ilość UserId to

select COUNT(UserId)
FROM view_GetNbrOfNewUsers

Z SQL'a jestem amatorem, więc jakby ktoś mógł mnie nakierować na rozwiązanie

0

praktycznie tak jak w poprzednim wątku, tylko pola inne, i order przed group

rozbieżność unikalnych i ogółem mi by kazała się zastanowić, co ten view naprawdę zwraca (Management Studio pozwala zobaczyć)

0

Generalnie zauważyłem że problemem jest to, że zrobiłem takie zapytanie:

select distinct UserId, Date
from view_GetNbrOfNewUsers
where Software = 'CVP'
order by UserId, Date

I wyrzuciło mi takie rekordy:

UserId     | Date
---------- | -------------------
54         | 2015-07-01 00:00:00.000
54         | 2015-08-01 00:00:00.000
54         | 2015-09-01 00:00:00.000
54         | 2015-10-01 00:00:00.000
54         | 2015-11-01 00:00:00.000
54         | 2015-12-01 00:00:00.000
54         | 2016-01-01 00:00:00.000

Zapewne dlatego te grupowanie wyżej takie wyniki dało :/

2

To zapytanie jest prawie dobre:

SELECT COUNT(distinct UserId) NewUsers, Market, Date
FROM view_GetNbrOfNewUsers
ORDER BY Date
GROUP BY Market, Date

tylko nie możesz grupować po dacie tylko po miesiącach w roku:

SELECT COUNT(distinct UserId) NewUsers, Market, CONVERT(varchar(7), Date, 111) Date
FROM view_GetNbrOfNewUsers
ORDER BY 3
GROUP BY Market, CONVERT(varchar(7), Date, 111)

1 użytkowników online, w tym zalogowanych: 0, gości: 1