webForumDet fria alternativet

COUNT(*) med flera kolumner

5 svar · 336 visningar · startad av Skarre

SkarreMedlem sedan apr. 20012 427 inlägg
#1

Jag undrar hur/om jag kan modifiera nedanstående simpla SQL-fråga till att hämta värden ur två kolumner samtidigt som jag räknar hur många poster som hämtas.

"SELECT COUNT(*) FROM albums WHERE userid = 1"

Jag vill samtidigt ha med "artistname" och "albumtitle", och eftersom jag inte är speciellt duktig på SQL så försökte jag med följande fråga som inte fungerar.

"SELECT COUNT(*), artistname, albumtitle FROM albums WHERE userid = 1"

Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[TCX][MyODBC]Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP columns is illegal if there is no GROUP BY clause

@ndersMedlem sedan juni 200032 969 inlägg
#2

Du måste ha med alla vanliga fält i GROUP BY.

"SELECT COUNT(*), artistname, albumtitle FROM albums WHERE userid = 1 GROUP BY artistname, albumtitle"

Red: eller vill du ha totala antalet? I så fall får du göra det med en subquery.

"SELECT artistname, albumtitle, (SELECT COUNT(*) FROM albums WHERE userid = 1) AS Antal FROM albums WHERE userid = 1"

Mvh,

SkarreMedlem sedan apr. 20012 427 inlägg
#3

Det jag vill åstadkomma är att få fram hur många poster med ett visst användar-ID som finns i tabellen och samtidigt hämta "artistname" och "albumtitle" ur dessa poster. Jag antar att jag då ska använda det sista av dina förslag, @nders men jag får då följande felmeddelande:

Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E09)
[TCX][MyODBC]You have an error in your SQL syntax near 'SELECT COUNT(*) FROM albums WHERE userid = 1) As Antal FROM albums WHERE userid ' at line 1

LarsGMedlem sedan dec. 200012 464 inlägg
#4

Mysql har inte stöd för den typen av frågor.

Du får ställa en fråga utan count. Du kan antingen räkna antalet i klienten eller så ställa en separat fråga med count.

SkarreMedlem sedan apr. 20012 427 inlägg
#5

Vilken puckad DBMS. Tack för hjälpen i alla fall! :)

@ndersMedlem sedan juni 200032 969 inlägg
#6

Jag missade att du körde MySQL. Jag ber om ursäkt. :)

Mvh,

138 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)