I wydaje mi się, że w jednym jest błąd (załączam screena) - chciałbym się upewnić. Tłumaczą, że:
"any records with a customerid of NULL will not be included in either count",
No i wszystko fajnie, ale w query nie ma COUNT(customerid), lecz COUNT(*). Per dokumentacja MS:
"COUNT(*) returns the number of rows in a specified table, and it preserves duplicate rows. It counts each row separately. This includes rows that contain null values."
Czy mam rację, że palnęli bzdurę? Z dokumentacji wynika, że mam, ale w SQLu dużo jest magicznych sztuczek i wolę się upewnić ;). Dzięki!
@Nie_gadam: Czy może to ja gadam bzdury i wynika to z tego, że w ostatnim query przez "WHERE customer_id <> '123'" NULLe nie zostaną wzięte pod uwagę, bo nie da się stwierdzić czy NULL <> 123?
@InformacjaNieprawdziwaCCCLVIII: Tak, racja, czyli dobrze mnie olśniło w komentarzu - oczywiście zaraz po zapostowaniu pytania :D. Czyli tylko pierwsze query policzyło nulle, w drugim to oczywiste, że nie, a w trzecim to nieoczywiste, że nie ;).
Cześć Mirosławy i Mirabelle, pytanko! Przeglądam sobie interview questions z SQLa, o tu:
https://www.toptal.com/sql/interview-questions
I wydaje mi się, że w jednym jest błąd (załączam screena) - chciałbym się upewnić. Tłumaczą, że:
"any records with a customerid of NULL will not be included in either count",
No i wszystko fajnie, ale w query nie ma COUNT(customerid), lecz COUNT(*). Per dokumentacja MS:
"COUNT(*) returns the number of rows in a specified table, and it preserves duplicate rows. It counts each row separately. This includes rows that contain null values."
Czy mam rację, że palnęli bzdurę? Z dokumentacji wynika, że mam, ale w SQLu dużo jest magicznych sztuczek i wolę się upewnić ;). Dzięki!
Komentarz usunięty przez autora
Jak i
Jest falszem dla customer_id=null. czyli nie pomylili się.