我爲什麼要這樣寫:爲什麼我應該使用聚合函數而不是在哪裏?
Having count(id) > 1
,而不是這樣的:
Where count(id) > 1
這只是爲英語?
我想,如果發明where子句可以使它接受聚合
或者是有一個原因的程序員?在加載數據或類似的東西?
我爲什麼要這樣寫:爲什麼我應該使用聚合函數而不是在哪裏?
Having count(id) > 1
,而不是這樣的:
Where count(id) > 1
這只是爲英語?
我想,如果發明where子句可以使它接受聚合
或者是有一個原因的程序員?在加載數據或類似的東西?
的原因是,SQL以一定的順序評估項目例如
如果您試圖在「where」子句中評估一個聚合,它實際上沒有意義,因爲它需要在聚合之前應用「where」子句。
WHERE
上操作的行,HAVING
上的行的集合( 「基團」)進行操作。集合函數不能用於單行,只是沒有任何意義。
組(聚合),關於值的集合操作功能[...]如果你使用不包含GROUP BY子句的聲明一組功能,它相當於分組在所有行上。
根本不是。第一個作品是適當的SQL。第二個不起作用。 –