在没有ANY()的情况下哪个是最便宜的聚合函数

Lui*_*uot 8 mysql sql t-sql

如果DBMS没有ANY()聚合函数,我通常使用MAX()或MIN().

在mySQL和MS-SQL中有没有更便宜的东西?

Joh*_*ica 1

MySQL 不需要ANY () 聚合。

如果我做一个

SELECT field1, field2, SUM(field3) FROM table1 
GROUP BY field2
Run Code Online (Sandbox Code Playgroud)

微软的 T-SQL 会抱怨,但是

MySQL 只会默默地执行

SELECT whatever(field1), field2, SUM(.... 
Run Code Online (Sandbox Code Playgroud)

这当然比SELECT max(field1), field2, SUM(.... GROUP BY field2

MySQL 支持ANY, 但SELECT ANY(field1) ...不起作用,因为ANY是 类似于INand的运算符ALL
请参阅:http ://dev.mysql.com/doc/refman/5.0/en/any-in-some-subqueries.html

我爱MySQL

  • 模棱两可且不明确=危险。 (10认同)
  • 多么奇妙的造词,而且非常恰当:*idiology*,如 idio[tic] [ideo]logy,如“MySQL idiology”。我会记住那一个。(正确的拼写是*意识形态*,顺便说一句。) (5认同)
  • @Johan - 将您的枪支类比到它的结论 - 优质枪支(所有其他 RDBMS)为您提供安全开关以防止意外射击。MYSQL 给你一触即发的弹药和超载的弹药,让你更容易受伤。 (5认同)
  • 不好的类比:没有可比性。在这种情况下,我认为没有必要让 RDBMS 代表我猜测列。*仅* MySQL 也有这种歧义:SQL Server、Sybase、Oracle、PostGres **没有**。请参阅http://stackoverflow.com/q/5986127/27535 (4认同)
  • @gbn,许多工具给你一把可以用来射击的枪,这就是为什么你需要了解你的工具,这样你就不会搬起石头砸自己的脚。枪杀人还是人杀人完全是另一个讨论。 (3认同)