我为什么要这样写:为什么我应该使用聚合函数而不是在哪里?
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。第二个不起作用。 –