Как вы подсчитываете строки в SQL-запросе, который уже использовал подсчет, группировку и наличие раньше?

Например, используя ответ на этот вопрос:

Как выбрать всех пользователей, которые сделали более 10 отправки "Как выбрать всех пользователей, которые сделали более 10 отправок."

select userId
from submission   
group by userId
having count(submissionGuid) > 10

Скажем, теперь я хочу знать, сколько строк выводит этот оператор sql. Насколько масштабируемо решение для подсчета строк подсчета строк?


person danmine    schedule 29.10.2008    source источник


Ответы (4)


Вложенные запросы:

select count(*) from
  (select userId
   from submission   
   group by userId
   having count(submissionGuid) > 10) n

Отредактировано, чтобы включить комментарий mbrierst о необходимости псевдонима («n» в конце) для вложенного подзапроса. Oracle этого не требует, а SQL Server требует. Не стесняйтесь добавлять комментарии относительно использования на других платформах баз данных.

person BQ.    schedule 29.10.2008
comment
Извините, я почти знаю только SQL Server. Это хорошо звучащая функция Oracle, хотя требование псевдонима SQL Server меня всегда раздражает. - person user12861; 31.10.2008

В SQL Server вы можете сделать

select @@ROWCOUNT 

сразу после отправленного вами запроса.

person Dave Neeley    schedule 29.10.2008

Вы можете попробовать так: я надеюсь помочь вам. select top(1) row_number() over(partition by count(userId) order by count(userId)) as RowNumber from submission group by userId having count(submissionGuid) > 10 order by userId desc

person Apple Yellow    schedule 08.05.2020

person    schedule
comment
Нет необходимости в псевдониме в Oracle. Вам это нужно в SQL Server. Хороший улов. - person BQ.; 29.10.2008