Как использовать COUNT (*), но разбить, повторяя значения в другом столбце - PullRequest
0 голосов
/ 21 июня 2019

У меня есть таблица в SQL, которая отформатирована следующим образом:

ReportLogID | SiteID | ReportName | ReportPath   | UserName | RunDateTime 
------------|--------|------------|--------------|----------|------------
1           | 3      | Report 1   | C:\1.report  |User      | 2014-11-26
2           | 8      | Report 1   | C:\1.report  |User      | 2014-12-20
3           | 3      | Report 2   | C:\2.report  |User      | 2014-12-21
4           | 3      | Report 1   | C:\1.report  |User      | 2014-12-22

У меня есть следующий код для подсчета количества выполнений отчета всего вместе с последней датой его запуска:

SELECT ReportName, MAX(RunDateTime) AS LASTRAN, COUNT(*) AS TIMESRAN FROM ReportLog GROUP BY ReportName ORDER BY TIMESRAN DESC 

Мне нужно запустить этот отчет, принимая во внимание SiteID.Я знаю, что отчет был выполнен в общей сложности X раз, и в последний раз он был запущен.Тем не менее, мне нужно разбить его по SiteID - таким образом, отчет 1 был запущен в общей сложности X раз для SiteID 3, и последний раз запускался на YYYY-MM-DD.Я столкнулся с контрольно-пропускным пунктом.

Любая помощь будет признательна!

1 Ответ

0 голосов
/ 21 июня 2019

Вы можете сделать это следующим образом:

SELECT ReportName
  , MAX(RunDateTime) AS LASTRAN
  , COUNT(*) AS TIMESRAN
FROM ReportLog
GROUP BY ReportName
  , SiteID
ORDER BY TIMESRAN DESC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...