Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » MSFT SQL Server - агрегация id по дням

Ответить
Настройки темы
MSFT SQL Server - агрегация id по дням

Старожил


Сообщения: 292
Благодарности: 0


Конфигурация

Профиль | Отправить PM | Цитировать


Подскажите, пожалуйста

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

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

Отправлено: 14:59, 19-10-2017

 

Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Примерно так:
Код: Выделить весь код
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.
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:06, 19-10-2017 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Старожил


Сообщения: 292
Благодарности: 0

Профиль | Отправить PM | Цитировать


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...)

Отправлено: 16:18, 19-10-2017 | #3


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата kontox:
(SELECT DISTINCT day, id FROM mytable
where...) »
Ну да, как-то так.

Отправлено: 16:54, 19-10-2017 | #4


Старожил


Сообщения: 292
Благодарности: 0

Профиль | Отправить PM | Цитировать


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

Отправлено: 17:45, 22-10-2017 | #5


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


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

Отправлено: 18:09, 22-10-2017 | #6


Ветеран


Сообщения: 3806
Благодарности: 824

Профиль | Отправить PM | Цитировать


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

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

Отправлено: 18:50, 22-10-2017 | #7



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » MSFT SQL Server - агрегация id по дням

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Прочие - Хранение и агрегация по месяцам первичных и передаточных сканов. merdzd Программное обеспечение Windows 8 09-07-2015 16:58
Прочие - Ищу программу-будильник, работающий по дням. Dark_Timur Программное обеспечение Windows 2 11-08-2014 08:56
[решено] Демо версия не имеет ограничения по дням в Norton Internet Security? micro8 Хочу все знать 0 22-01-2011 12:21
[решено] как сделать доступ к папкам по дням недели? Steven21 Microsoft Windows NT/2000/2003 15 10-12-2009 17:11
CMD/BAT - Батник имеющий лимит запусков по дням??? Anarasius Скриптовые языки администрирования Windows 3 24-09-2009 16:07




 
Переход