Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   агрегация id по дням (http://forum.oszone.net/showthread.php?t=330622)

kontox 19-10-2017 14:59 2771810

агрегация id по дням
 
Подскажите, пожалуйста

есть запрос
select id, day
from mytable

как мне агрегировать так, чтобы на выходе было количество уникальных id в день
count day
5 1.09.2017
10 2.09.2017
т.е. первого сентября пришло 5 уникальных id
а второго сентября 10 уникальных id пришло

Iska 19-10-2017 16:06 2771821

Примерно так:
Код:

SELECT day, Count(id) AS [Count-id] FROM (SELECT DISTINCT day, id FROM mytable) GROUP BY day;
Сначала Вы оставляете только уникальные записи в парах day/id — «SELECT DISTINCT day, id FROM mytable», затем группируете результат по датам, считая количество id.

kontox 19-10-2017 16:18 2771823

Iska, спасибо
а если в этом запросе есть дополнения
select id, day
from mytable
where day >='02.09.2017' and day <='05.09.2017'
and event ='subject'
and level=40

куда мне вставить конструкцию where
в эти скобки?
(SELECT DISTINCT day, id FROM mytable
where...)

Iska 19-10-2017 16:54 2771830

Цитата:

Цитата kontox
(SELECT DISTINCT day, id FROM mytable
where...) »

Ну да, как-то так.

kontox 22-10-2017 17:45 2772476

Iska, еще вопрос
подскажите, как сделать чтобы day на выходе был в формате
09-05-2017, а не 09-05-2017 5:34:23

Iska 22-10-2017 18:09 2772487

kontox, у меня отсутствует Microsoft SQL. Попробуйте рассмотреть и опробовать варианты, предложенные, например, здесь: How can I truncate a datetime in SQL Server? - Stack Overflow.

Busla 22-10-2017 18:50 2772502

kontox, если у вас "day на выходе в формате 09-05-2017 5:34:23", то это, очевидно, и на входе, и не day. И, как следствие, предложенный Iska код работать не будет.

Цитата:

Цитата kontox
а если в этом запросе есть дополнения
and event ='subject'
and level=40
куда мне вставить конструкцию where »

это зависит от того, как эти "дополнения" влияют на критерий уникальности.


Время: 22:53.

Время: 22:53.
© OSzone.net 2001-