Jag har gjort en fråga där jag använder distinct för att inte få fler träffar om jag har fler datum. jag vill sedan gruppera detta på en annan egenskap.
detta vill inte blir rärr och jag kommer inte på hur jag ska göra.
om jag har med datumet i selectsatsen och sedan grupperar på både datum och den andra egenskapen så fungerar inte distinct i selectsatsen, den tar med alla datum ändå. men jag kan ju inte ta bort datum från selectsatsen för då plockar den ju ut alla datum då också. hur gör jag?
jag skulle vilja göra en fråga likt detta:
select distinct personID,datum,count(*) as antal from tabell
och sedan gruppera detta resultat på plats så att jag får ett antal per plats och dag. varför jag vill ha en distinct i selecten är bara för att samma person kan välja samma plats flera gånger samma dag och jag är inte intresserad av detta, endast unika dagar
typ följande info:
personID | datum |plats | antal
1 2007-01-01 1 1
1 2007-01-02 2 3
ditt första förslag förstår jag inte riktigt, hur skulle denna fungera och ditt andra förslag är precis så som jag gjort som inte blir korrekt. det blir inte korrekt av den anledningen att jag får flera träffar varje dag av samma person på samma plats, det är dessa träffar som jag vill plocka bort med en distinct.
om jag gör såhär:
select distinct personID,plats,datum as antal from tabell
så får jag fram de träffar som jag sedan vill gruppera
om jag grupperar dem så får jag ändå med de träffar jag ville ta bort med distinct, det är mitt problem..hmm knepigt
select personid
, plats
, count(distinct datum)
from tbl
group
by personid
, plats
Anledningen till att det är lite tvetydigt, är datumet du vill ha ut ur frågan. Av din senaste SELECT DISTINCT, vilket datum skall visas jämte person-id, plats och antal - det finns ju tre datum att välja bland?