Autor | Zpráva | ||
---|---|---|---|
robbie Profil |
Zdravím, chci se za prvé optat, v jakém pořadí se vykonají klauzule v dotazu:
(Např. za 1.FROM , 2.SUM, pak.....3. ? atd.) SELECT oayee SUM(amount) TOTAL, COUNT(payee) NUMBER_WRITTEN FROM checks WHERE amount >= 1000 GROUP BY payee HAVING SUM (amount)> 500 a za druhé , sql dotaz lze po řádcích číst jako anglickou větu, jak by jste tedy tento dotaz přeložili? Dělá mi problém to HAVING nevím na co se ptá nebo jaký má význam nebo k čemu se vztahuje. Snad je muj dotaz srozumitelný. Děkuji |
||
Alphard Profil |
#2 · Zasláno: 24. 3. 2017, 22:06:34
Detailní vysvětlení je v manuálu, ale stručně vykonávání přibližně odpovídá pořadí zápisu (přibližně protože si netroufám odhadnout, co optimalizátor vymyslí). Do where lze psát výraz vyhodnotitelný na úrovni jednoho záznamu (před seskupením) a po group by lze filtrovat již seskupená data mj. pomocí agregačních funkcí jako sum(), avg(), count() apod.
Kdyžtak koukněte na www.linuxsoft.cz/article.php?id_article=872. |
||
Časová prodleva: 6 let
|
0