gpt4 book ai didi

mysql - 您可以在单个 mySQL 查询中包含总计和详细信息行吗?

转载 作者:行者123 更新时间:2023-11-29 06:52:27 24 4
gpt4 key购买 nike

记录在案的问题似乎都与我的具体问题无关。

是否可以根据单个查询中该订单的详细信息行数量对详细信息行进行排序?

考虑下面的简化表:

Order number Article number
------------ --------------
123 1
123 2
123 3
234 1
234 2
345 1
456 1
456 2
456 3
456 4
456 5

每个订单的详细信息行数为

Order number Number of lines
------------ ---------------
123 3
234 2
345 1
456 5

是否可以按每个明细行的明细行总数降序选择订单号、商品号?换句话说,期望的结果是

Order number Article number
------------ --------------
456 1
456 2
456 3
456 4
456 5
123 1
123 2
123 3
234 1
234 2
345 1

我可以使用多个查询和临时表或额外列来完成此操作。简单的 SELECTS、SELF JOIN 和 UNION 似乎都没有给我想要的结果。是否可以通过单个查询来完成?

最佳答案

这个查询应该可以工作,因为它从连接中获取计数,然后按计数对其进行排序。

select t1.orderNumber,  t1.articleNumber from myTable t1
inner join
(
select orderNumber, count(articleNumber) as count from myTable
group by orderNumber

) t2
on t1.orderNumber = t2.orderNumber
order by t2.count desc, t1.orderNumber, t1.articleNumber

为了更好地解释它:

我们首先选择所有数据,然后我们内部连接一个包含每个订单号计数的表,一旦我们有了这个,我们就可以按计数DESC对其进行排序,这样我们就得到了计数最高的订单号位于顶部,然后我们可以在 Order By

中添加其他排序

关于mysql - 您可以在单个 mySQL 查询中包含总计和详细信息行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46897943/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com