webForumDet fria alternativet

count

1 svar · 180 visningar · startad av The_Hulk

The_HulkMedlem sedan juni 20031 837 inlägg
#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.)

LarsGMedlem 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.

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