Wpis z mikrobloga

Hejka, mam takie pytanko poniżej, ktoś pomoże #sql

Które z poniższych poleceń jest prawidłowe?

a) SELECT column, COUNT() FROM table HAVING column = 'A'
b) SELECT column, COUNT() FROM table GROUP BY column WHERE column = 'A'
c) SELECT column, COUNT() FROM table GROUP BY column WHERE COUNT() > 10
d) SELECT column, COUNT() FROM table GROUP BY column HAVING COUNT() > 10

jest to dziwnie dla mnie sformułowane i dla mnie żadna odpowiedź nie jest poprawna, jesli miałbym coś wybrać było by to D.
  • 9
  • Odpowiedz
@PanPiotrus:co do D i reszty z tego co wiem uzycie "COUNT()" jest niepoprawne, count musi cos zliczac, dodatkowo warunek wydaje sie nie miec sensu, bo jesli taki county by nawet zadzialal to znaczylo by to tylko jesli jest wiecej niz 10 wierszy to pokaz wszystkie wiersze, najsensowniejsze wydaje sie B z drobnymi poprawkami.
  • Odpowiedz
SELECT column, COUNT() FROM table GROUP BY column WHERE column = 'A'


@PanPiotrus: select column, count(column)from table group by column; dodanie where tez nie ma sensu bo ci wyswietli tylko 1 wiersz z iloscia A chyba ze o to chodzi.
  • Odpowiedz
@bboymc:

dlaczego dziwne? d jest poprawne


b) też jest poprawne. Można dawać where na kolumnie, po której się grupuje. Tylko, że np. w T-SQL WHERE musi być przed GROUP BY. Poza tym nie count() tylko count(*).
  • Odpowiedz