SQL - Anzahl Vorkommnisse eines Wertes zählen

johnsql

Grünschnabel
Hi,

ich möchte die Anzahl an keywords in meiner Tabelle zählen. Die Tabelle besteht aus 2 Spalten:
id (Primärschlüssel)
keyword

Mein Versuch war folgender:
SQL:
SELECT        id, keyword, COUNT(id) AS numKeywords
FROM            keywords
GROUP BY keyword
ORDER BY numKeywords DESC, keyword

Das gibt mir aber folgende Fehlermeldung zurück:
Die keywords.id-Spalte ist in der Auswahlliste ungültig, da sie nicht in einer Aggregatfunktion und nicht in der GROUP BY-Klausel enthalten ist.

Ich hab also die id mit in die group-by-Klausel genommen.

SQL:
SELECT        id, keyword, COUNT(id) AS numKeywords
FROM            keywords
GROUP BY keyword, id
ORDER BY numKeywords DESC, keyword

Jetzt wird mir aber nicht mehr die korrekte Zählung (numKeywords) zurückgegeben.

Hat jemand Rat für mein Anfängerproblem?
 
Zuletzt bearbeitet von einem Moderator:
Also, gemäs deiner Aufgabenstellung währe das so:
SQL:
SELECT
    COUNT(*) 
FROM 
    keywords

Aber wahrscheinlich willst du was anderes. GROUP BY id bringt sicher nix, da die der Primary ist und somit sowieso je nur einmal vorkommt.
Ergo gehe ich mal davon aus, dass ein Keyword mehrfach mit versch. IDs vorkommen kann. Ergo miss die ID aus dem SELCT raus
SQL:
SELECT
    keyword,
    COUNT(*)
FROM
    keywords
GROUP BY
    keyword
 
Zuletzt bearbeitet von einem Moderator:
Hi,

danke für die schnelle Antwort. Leider benötige ich die id als Spalte.

Stimmt. Ich hatte vergessen zur erwähnen, dass ein Keyword öfter vorkommen kann unter verschiedenen Ids.

EDIT: Ich hab selbst germerkt, dass man die ID-Spalte ja gar nicht anzeigen lassen kann, weil die Spalten ja gruppiert sind. Was soll bei gruppierten Spalten dort auch stehen!?

(Hintergrund: ASP.NET-Anwendung. Das Control, was an die SQL-Anwesung "angeschlossen" ist, benötigt den Primärschlüssel)
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück