webForumDet fria alternativet
Logga in / Bli medlem

count

Databaser & SQL

1 svar · 180 visningar · startad av The_Hulk

Medlem sedan juni 20031 837 inlägg
Trådstart#1

Skulle behöva lite hjälp med SQL-fråga som rör MySQL.

låt oss säga at vi har en tabell som ser ut så här:

ID - int, unik
DATUM - date
IP - varchar(32)

EX:

1 | '2003-01-01' | '192.168.1.1'
2 | '2003-02-01' | '192.168.1.2'
3 | '2003-03-01' | '192.168.1.3'
4 | '2003-04-01' | '192.168.1.1'
5 | '2003-05-01' | '192.168.1.2'
6 | '2003-06-01' | '192.168.1.1'

Nu vill jag få ut alla rader plus att jag vill ha räknat antal rader med samma IP på alla rader.

Jag vill alltså få följande:

ID |     DATUM    |      IP       | count(ip)
 1 | '2003-01-01' | '192.168.1.1' | 3
 2 | '2003-02-01' | '192.168.1.2' | 2
 3 | '2003-03-01' | '192.168.1.3' | 1
 4 | '2003-04-01' | '192.168.1.1' | 3
 5 | '2003-05-01' | '192.168.1.2' | 2
 6 | '2003-06-01' | '192.168.1.1' | 3

På något sätt vill jag göra count(ip) group by ip men ändå få ut alla rader. går detta?

fudnerade på att man kanske kunde göra det med nåhon left join men jag kommer inte ihåg hur de fungerar.

(Förresten det är inte jag som lagt upp databasen eller valt att få ut dessa värden.)

Medlem sedan dec. 200012 464 inlägg
#2

Det går med hjälp av en skalär subselect men det krävs att du använder Mysql 4.1. Annars så får du ställa flera frågor.

378 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
128 ms — deklarationer (db)
119 ms — hämta statistik (db)
129 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)