Как выбрать всех пользователей, которые сделали более 10 заявок - PullRequest
3 голосов
/ 30 сентября 2008

У меня есть очень простая таблица отправки: userId, submissionGuid

Я хочу выбрать имя пользователя (простое внутреннее объединение, чтобы получить его) для всех пользователей, которые имеют более 10 представлений в таблице.

Я бы сделал это с помощью встроенных запросов и группы для подсчета заявок ... но есть ли лучший способ сделать это (без встроенных запросов)?

Спасибо!

Ответы [ 5 ]

5 голосов
/ 30 сентября 2008

Это самый простой способ, я считаю:

select userId
from submission   
group by userId
having count(submissionGuid) > 10
1 голос
/ 30 сентября 2008
SELECT 
    username 
FROM 
    usertable 
    JOIN submissions 
        ON usertable.userid = submissions.userid 
GROUP BY 
    usertable.username 
HAVING 
    Count(*) > 1

* Предполагается, что ваша таблица «Users» является вызовом usertable и в ней есть столбец с именем «UserName»

1 голос
/ 30 сентября 2008
select userId, count(*)
from   submissions
having count(*) > 10
group by userId
0 голосов
/ 30 сентября 2008

выберите ID пользователя, количество (submissionGUID) как submitCount

из представленных материалов

группировка по идентификатору пользователя, submitCount

с submitCount> 10

0 голосов
/ 30 сентября 2008

Мне кажется, правильный запрос (SQL Server):

SELECT s.userId, u.userName
FROM submission s INNER JOIN users u on u.userId = s.userId   
GROUP BY s.userId, u.username
HAVING COUNT(submissionGuid) > 10

Если у вас нет предложения HAVING:

SELECT u.userId, u.userName
FROM users u INNER JOIN (
    SELECT userId, COUNT(submissionGuid) AS cnt
    FROM submission
    GROUP BY userId ) sc ON sc.userId = u.userId
WHERE sc.cnt > 10
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...