count

Databaser & SQL

1 svar · 187 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.

248 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)