Оператор SELECT для подсчета элементов - PullRequest
3 голосов
/ 21 декабря 2010

У меня есть таблица SQL, состоящая из:

[title]
ElementA
ElementA
ElementB
ElementC
ElementA
ElementA

Я пытаюсь найти способ подсчитать элемент, который встречается чаще всего;в этом примере это будет 4, потому что ElementA произошло 4 раза.Проблема в том, что эта таблица динамическая, поэтому я не могу просто сказать SELECT COUNT(*) WHERE title = 'ElementA';

Кто-нибудь знает, как составить оператор SELECT для этого?Концептуально это кажется довольно простым, но я просто не могу заставить его работать.

Большое спасибо, Бретт

Ответы [ 6 ]

4 голосов
/ 21 декабря 2010
SELECT TOP 1 Title, COUNT(*) FROM table GROUP BY Title ORDER BY 2 DESC

или

SELECT Title, COUNT(*) FROM table GROUP BY Title ORDER BY 2 DESC LIMIT = 1

в зависимости от продукта, который вы используете.

(отредактировано для исправления предложения ORDER BY).

3 голосов
/ 21 декабря 2010
Select TOP 1 Title

FROM


(

Select 
   Count(title) k, title
FROM
    titles
GROUP BY 
   TITLE

) Count

 ORDER BY
      k Desc
2 голосов
/ 21 декабря 2010

Попробуйте, чтобы получить полный список

SELECT Title, Count (*) as NumOccurences
FROM MyTable
GROUP BY Title
Order BY NumOccurences

Чтобы получить лучшую собаку, используйте следующее с некоторыми изменениями в соответствии с вашим синтаксисом SQL

SELECT TOP 1 Title, NumOccurences
FROM 
(
    SELECT Title, Count (*) NumOccurences
    FROM MyTable
    GROUP BY Title
    Order BY Count (*) DESC
) AS Titles
1 голос
/ 21 декабря 2010

Сервер Sql:

SELECT TOP 1 
    Title, COUNT(*) AS Count
FROM tbl
GROUP BY Title
ORDER BY Count DESC

Postgresql, MySQL и т. Д .:

SELECT 
    Title, COUNT(*) AS Count
FROM tbl
GROUP BY Title
ORDER BY Count DESC
LIMIT 1
0 голосов
/ 21 декабря 2010
WITH CTE (Title, Counter) as
 (SELECT Title, Count(*) Counter FROM #Test GROUP BY Title) 

SELECT Top 1 Title, Counter FROM CTE order by Counter Desc
0 голосов
/ 21 декабря 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...