• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Как правильно построить запрос?

  • Автор темы jcolor
  • Дата начала
J

jcolor

Всем, привет!!!
Подскажте, как правильно построить следующий запрос:
Есть таблица , в которой следующие поля

OpenDate - дата запроса
IdUser - id пользоваетеля
OpenFile - название открываемого файла

Как красиво построить запрос, чтобы в результате получить таблицу:
-дата
-кол-во уникальных пользователей за эту дату
-общее кол-во открываемых файлов

Я написала процедуру с двумя временными таблицами:
первая - дата, кол-во файлов
вторая - дата, кол-во уникальных пользователей
затем их просто объединила

Можно ли как-то по другому это все сделать???
 
E

European

<!--QuoteBegin-jcolor+11:05:2007, 16:13 -->
<span class="vbquote">(jcolor @ 11:05:2007, 16:13 )</span><!--QuoteEBegin-->Можно ли как-то по другому это все сделать???
[snapback]65634" rel="nofollow" target="_blank[/snapback]​
[/quote]
Поискать по форуму "GROUP BY"
 
J

jcolor

<!--QuoteBegin-European+11:05:2007, 16:18 -->
<span class="vbquote">(European @ 11:05:2007, 16:18 )</span><!--QuoteEBegin-->Поискать по форуму "GROUP BY"
[snapback]65636" rel="nofollow" target="_blank[/snapback]​
[/quote]


Если с помощью GROUP BY
то получается следующее:

Код:
SELECT OpenDate, IdUser, OpenFile , COUNT(*) FROM Table
GROUP BY OpenDate, IdUser, OpenFile

В таком случае определяется только кол-во открываемых файлов,
а надо еще добавить колонку уникальных пользователей за день
 
J

jcolor

<!--QuoteBegin-European+11:05:2007, 16:18 -->
<span class="vbquote">(European @ 11:05:2007, 16:18 )</span><!--QuoteEBegin-->Поискать по форуму "GROUP BY"
[snapback]65636" rel="nofollow" target="_blank[/snapback]​
[/quote]

СПАСИБО!!!!
Нашла ,
действительно с помощью этого можно построить данный запрос

<!--QuoteBegin-sax_ol+11:05:2007, 16:38 -->
<span class="vbquote">(sax_ol @ 11:05:2007, 16:38 )</span><!--QuoteEBegin-->можно конечно и так:
select OpenDate, count(distinct IdUser) as Users, (select count(*) from dbo.Table1) as _all from Table
group by OpenDate
но несколько "некрасиво"
[snapback]65644" rel="nofollow" target="_blank[/snapback]​
[/quote]


Получается следующий запрос:
Код:
SELECT OpenDate, COUNT(DISTINCT IdUser), COUNT(OpenFile) FROM Table
GROUP BY OpenDate
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!