gpt4 book ai didi

mysql - ORDER BY 基于最大行数出现

转载 作者:太空宇宙 更新时间:2023-11-03 12:00:17 25 4
gpt4 key购买 nike

表格字段:shop_id , product_id

  1. 我想要一份包含特定产品的所有商店的列表(应该至少有 1 种产品)
  2. 结果应根据指定产品数量最多的商店进行排序

我可以为第 1 部分编写 sql 查询,但列表未根据匹配最大产品数的商店排序

SELECT 
shop_id,
product_id
FROM
products_table
WHERE
product_id IN (1,2,3)
ORDER BY ???

是否有最优解?

最佳答案

加入一个子查询,获取每个商店的计数,并以此为准。

SELECT a.shop_id, a.product_id
FROM products_table AS a
JOIN (SELECT shop_id, COUNT(*) AS product_count
FROM products_table
WHERE product_id in (1, 2, 3)
GROUP BY shop_id) AS b
ON a.shop_id = b.shop_id
WHERE product_id IN (1, 2, 3)
ORDER BY b.product_count DESC

关于mysql - ORDER BY 基于最大行数出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29634252/

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