【发布时间】:2018-09-19 07:50:26
【问题描述】:
现在,据我了解,当您使用 AVG、SUM 等聚合函数时,您必须记住,您 SELECT 未参与聚合函数的任何其他字段将是不确定的,例如:
SELECT AVG(amount), name, desc FROM some_table;
我理解这一点,这是因为来自聚合函数的值未绑定到任何一行,因此选择的其他字段是不确定的。
但是,如果您使用不同类型的聚合函数,例如 MIN 或 MAX,它们检索到的内容与特定行绑定,那么可以安全地假设任何其他字段选择了不在聚合函数中的可以确定吗? ...因为与其他聚合函数结果不同,结果会绑定到特定的数据行吗?
例如:
SELECT MIN(media_id),
auction_id,
media_url
FROM auction_media
WHERE auction_id IN( 119925, 124660, 124663, 129078,
129094, 134395, 149753, 152221,
154733, 154737, 154742, 157694,
161411, 165965, 165973 )
AND media_type = 1
AND upload_in_progress = 0
GROUP BY auction_id;
如果我的想法是正确的,这将总是返回正确的media_url 对吗?
【问题讨论】:
-
您通常按您选择的列进行分组。
标签: mysql sql aggregate-functions min