MySQL - 两个查询之间的区别

标签 mysql select group-by

(SELECT * FROM (SELECT clientid,totalquantity from clientquantity 
order by quantitydate desc) AS A GROUP BY clientid);

SELECT clientid,totalquantity from clientquantity group by clientid;

有人可以解释一下上面两个查询之间的区别吗?结果集在计数的行方面是相同的。那么,这两个查询之间有区别吗?例如,性能方面,还是数据方面的差异?

第一个查询用作与另一个表的 LEFT JOIN 查询的一部分。为了简单起见,我在这篇文章中删除了另一个表格。

Is the above because the 2nd query needs to contain an ORDER BY as well and with SQL the only way to do that is to have do it like done in 1st query? I have omitted ORDER BY from the 2nd query but it is required in the 2nd query as well.

谢谢,

最佳答案

检查这个SQL FIDDLE DEMO了解您的两个查询之间的区别。

  1. 当您使用按日期降序排列的数据排序时 使用 clientId 对该数据进行分组,而不是检索所有客户端数据 最新日期。

  2. 如果您直接使用GROUP BY 子句那么它将获取每个第一个 按 clientId 从表中记录。

关于MySQL - 两个查询之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14064682/

相关文章:

MySQL UPDATE 数学不工作?

hibernate - 如何在Grails中从数据库中选择随机行?

插入触发器SET之前的Mysql失败

python - 使用 ID 和 asof 合并两个数据框

r - dplyr中的组编号?

mysql - DATE_FORMAT() sql 返回 0 行

mysql - 如何衡量列与模式的匹配程度?

java - Hibernate 获取数据 .list() 已不再使用且表未映射。该怎么办?

MySQL 查询正则表达式

r - dplyr 根据某些条件创建新列