Vinnaren i pepparkakshustävlingen!
2010-12-17, 02:50
  #1
Medlem
The Barrs avatar
Kod:
SELECT Name, City, COUNT(*)
FROM Person INNER JOIN House
    ON Person.Id = House.PersonId
GROUP BY  Name, City
ORDER BY  Name, City

Varför får jag ut ett countvärde som är dubbelt så högt som det borde vara? Det har ju uppenbarligen med inner join att göra då det blir rätt när jag använder en sammanslagen tabell, men jag förstår inte riktigt varför det blir så. Inner join påverkar ju inte radantalet, och det borde väl inte heller påverka count?
Citera
2010-12-17, 07:54
  #2
Moderator
Protons avatar
Vad hyänder om du räknar något annat då, name kanske? Dvs COUNT(name). Funkar det som det borde då?
Citera
2010-12-17, 12:36
  #3
Medlem
The Barrs avatar
Nope, jag har försökt räkna fält ur en av tabellerna, men det blir fortfarande fel.

Edit: Ah, pinsamt! Jag hade gjort fel i en lagrad procedur som konvererade om datat så att jag fick dubbel data i en av tabellerna. Otroligt att man kan missa de mest uppenbara sakerna...
__________________
Senast redigerad av The Barr 2010-12-17 kl. 12:41.
Citera
2010-12-18, 19:38
  #4
Medlem
grandnastys avatar
Citat:
Ursprungligen postat av The Barr
Nope, jag har försökt räkna fält ur en av tabellerna, men det blir fortfarande fel.

Edit: Ah, pinsamt! Jag hade gjort fel i en lagrad procedur som konvererade om datat så att jag fick dubbel data i en av tabellerna. Otroligt att man kan missa de mest uppenbara sakerna...

Nästa gång kanske det är värt att ta bort COUNT och köra queryn och se vad den returnerar så brukar man också se vad som är galet, lättare att felsöka så.
Citera
2010-12-19, 04:48
  #5
Medlem
The Barrs avatar
Citat:
Ursprungligen postat av grandnasty
Nästa gång kanske det är värt att ta bort COUNT och köra queryn och se vad den returnerar så brukar man också se vad som är galet, lättare att felsöka så.


Mjo, det gjorde jag, men med lite hundratusentals poster hit och dit i olika tabeller kan det hända att man inte ser att man har dubbla poster, om man inte har råkat sortera dom "rätt"... Men absolut, felsökning ifrån grunden är ju aldrig fel. Men ibland får sig ju hjärnan för sig att snöa in totalt på ett spår. Uppenbarligen.
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback