Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Объединение запросов по столбцам...  [new]
Mazay2142
Member

Откуда:
Сообщений: 23
Хорошей пятницы,

подскажите пожалуйста, как реализовать следующую задачку:
Есть пользователи, которые входят и выходят на сайт, собирается статистика, кто с какими правами доступа вошёл.
Есть уже созданный запрос, который группирует, сколько зашло за день и с какими правами вида:

(Права) (Кол-во заходов)
Администраторов 4
Супер-Пользователей 15
Пользователей 90

Как разбить эти данные по часам (с 0 до 23), например

(Права) (0.00-0.59) (1.00-1.59) (2.00-2.59) (3.00-3.59) и тд.
Администраторов 3 0 0 1 ...
Супер-пользователей 10 5 0 0
Пользователей 30 30 10 20

Чрезмерно благодарен буду, если подскажете, как такое реализовать?
29 июн 18, 11:10    [21530720]     Ответить | Цитировать Сообщить модератору
 Re: Объединение запросов по столбцам...  [new]
iap
Member

Откуда: Москва
Сообщений: 46953
Mazay2142, в колонках
SUM(CASE WHEN ... THEN ... ELSE 0 END)
где условие WHEN задаёт время для колонки.
29 июн 18, 11:13    [21530737]     Ответить | Цитировать Сообщить модератору
 Re: Объединение запросов по столбцам...  [new]
iap
Member

Откуда: Москва
Сообщений: 46953
iap
Mazay2142, в колонках
SUM(CASE WHEN ... THEN ... ELSE 0 END)

где условие WHEN задаёт время для колонки.
Если речь просто о количестве, то
SUM(CASE WHEN ... THEN 1 ELSE 0 END)
29 июн 18, 11:14    [21530741]     Ответить | Цитировать Сообщить модератору
 Re: Объединение запросов по столбцам...  [new]
Mazay2142
Member

Откуда:
Сообщений: 23
Изначальный код (возможно тоже корявый, но работает. Показывает, сколько за сутки с какими правами было входов

SELECT [Группы прав], COUNT(*)

FROM [TABLE].[SESSION]
where [Старт сессии] between '2018-06-28 0:00:00.000' and '2018-06-28 23:59:59.999'



GROUP BY [Группы прав] ORDER BY [Группы прав];
29 июн 18, 11:20    [21530754]     Ответить | Цитировать Сообщить модератору
 Re: Объединение запросов по столбцам...  [new]
Mazay2142
Member

Откуда:
Сообщений: 23
Изначальный код (возможно тоже корявый, но работает. Показывает, сколько за сутки с какими правами было входов

SELECT [Группы прав], COUNT(*)

FROM [TABLE].[SESSION] 
where [Старт сессии] between '2018-06-28 0:00:00.000' and '2018-06-28 23:59:59.999'



GROUP BY [Группы прав] ORDER BY [Группы прав];
29 июн 18, 11:20    [21530757]     Ответить | Цитировать Сообщить модератору
 Re: Объединение запросов по столбцам...  [new]
Mazay2142
Member

Откуда:
Сообщений: 23
iap
iap
Mazay2142, в колонках
SUM(CASE WHEN ... THEN ... ELSE 0 END)

где условие WHEN задаёт время для колонки.
Если речь просто о количестве, то
SUM(CASE WHEN ... THEN 1 ELSE 0 END)


А не подскажите, с моими данными новыми, как реализовать?
29 июн 18, 11:29    [21530785]     Ответить | Цитировать Сообщить модератору
 Re: Объединение запросов по столбцам...  [new]
Kopelly
Member

Откуда: Красноярск
Сообщений: 289
Select [Группы прав], [0],[1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12],[13],[14],[15],[16],[17],[18],[19],[20],[21],[22],[23]
From (Select [Группы прав], datepart(hh,[Старт сессии]) as ЧасВхода From TABLE].[SESSION]) a
Pivot (Count(*) for ЧасВхода in [0],[1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12],[13],[14],[15],[16],[17],[18],[19],[20],[21],[22],[23]) as p
29 июн 18, 13:55    [21531272]     Ответить | Цитировать Сообщить модератору
 Re: Объединение запросов по столбцам...  [new]
Mazay2142
Member

Откуда:
Сообщений: 23
Kopelly
Select [Группы прав], [0],[1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12],[13],[14],[15],[16],[17],[18],[19],[20],[21],[22],[23]
From (Select [Группы прав], datepart(hh,[Старт сессии]) as ЧасВхода From TABLE].[SESSION]) a
Pivot (Count(*) for ЧасВхода in [0],[1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12],[13],[14],[15],[16],[17],[18],[19],[20],[21],[22],[23]) as p


Пишет, неправильный синтаксис рядом с * в Count(*)
3 июл 18, 12:44    [21538999]     Ответить | Цитировать Сообщить модератору
 Re: Объединение запросов по столбцам...  [new]
Mazay2142
Member

Откуда:
Сообщений: 23
Kopelly
Select [Группы прав], [0],[1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12],[13],[14],[15],[16],[17],[18],[19],[20],[21],[22],[23]
From (Select [Группы прав], datepart(hh,[Старт сессии]) as ЧасВхода From TABLE].[SESSION]) a
Pivot (Count(*) for ЧасВхода in [0],[1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12],[13],[14],[15],[16],[17],[18],[19],[20],[21],[22],[23]) as p


и что здесь значит "а" (...SESSION]) a)??
3 июл 18, 12:46    [21539005]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить