it-swarm.com.de

Finden Sie den häufigsten Wert in der SQL-Spalte

Wie kann ich den häufigsten Wert in einer bestimmten Spalte einer SQL-Tabelle finden?

Für diese Tabelle sollte beispielsweise two zurückgegeben werden, da dies der häufigste Wert ist:

one
two
two
three
102
Jake
SELECT       `column`,
             COUNT(`column`) AS `value_occurrence` 
    FROM     `my_table`
    GROUP BY `column`
    ORDER BY `value_occurrence` DESC
    LIMIT    1;

Ersetzen Sie column und my_table. Erhöhen Sie 1, wenn Sie die am häufigsten verwendeten N-Werte der Spalte anzeigen möchten.

143
Mihai Stancu

Versuchen Sie etwas wie:

SELECT       `column`
    FROM     `your_table`
    GROUP BY `column`
    ORDER BY COUNT(*) DESC
    LIMIT    1;
34
Mat

Betrachten wir den Tabellennamen als tblperson und den Spaltennamen als city. Ich möchte die am meisten wiederholte Stadt aus der Stadtsäule abrufen:

 select city,count(*) as nor from tblperson
        group by city
          having count(*) =(select max(nor) from 
            (select city,count(*) as nor from tblperson group by city) tblperson)

Hier ist nor ein Aliasname.

15
naveen

Die folgende Abfrage scheint für mich in der SQL Server-Datenbank gut zu funktionieren:

select column, COUNT(column) AS MOST_FREQUENT
from TABLE_NAME
GROUP BY column
ORDER BY COUNT(column) DESC

Ergebnis:

column          MOST_FREQUENT
item1           highest count
item2           second highest 
item3           third higest
..
..
6
Swadhikar C

Zur Verwendung mit SQL Server.

Da es keine Begrenzungsbefehlsunterstützung gibt.

Sie können den Befehl top 1 verwenden, um in diesem Fall den maximal vorkommenden Wert in der jeweiligen Spalte zu ermitteln (Wert).

SELECT top1 
    `value`,
    COUNT(`value`) AS `value_occurrence` 
FROM     
    `my_table`
GROUP BY 
    `value`
ORDER BY 
    `value_occurrence` DESC;
3
Muneeb Hassan

Angenommen, Table ist 'SalesLT.Customer' und die Spalte, die Sie herauszufinden versuchen, ist 'CompanyName' und AggCompanyName ist ein Alias.

Select CompanyName, Count(CompanyName) as AggCompanyName from SalesLT.Customer
group by CompanyName
Order By Count(CompanyName) Desc;
1
Muzammel Mukul

Wenn Sie eine ID-Spalte haben und die sich am häufigsten wiederholende Kategorie aus einer anderen Spalte für jede ID suchen möchten, können Sie die folgende Abfrage verwenden:

Tabelle:

 enter image description here 

Abfrage:

ID, KATEGORIE, COUNT (*) WÄHLEN ALS FREQ. AUS TABELLENGRUPPE NACH 1,2 QUALIFY ROW_NUMBER () ÜBER (PARTITION NACH ID ORDER NACH FREQ DESC) = 1;

Ergebnis:

 enter image description here 

0
Mayur Mane

Wenn Sie LIMIT nicht verwenden können, ist LIMIT keine Option für Ihr Abfragetool. Sie können stattdessen "ROWNUM" verwenden, benötigen jedoch eine Unterabfrage:

SELECT FIELD_1, ALIAS1
FROM(SELECT FIELD_1, COUNT(FIELD_1) ALIAS1
    FROM TABLENAME
    GROUP BY FIELD_1
    ORDER BY COUNT(FIELD_1) DESC)
WHERE ROWNUM = 1
0
Roadkill