有一个带item_id和color_id的产品表。我正在尝试使用大多数非null实例获取color_id。
item_id
color_id
这将失败:
SELECT color_id FROM products WHERE item_id=1234 GROUP BY item_id HAVING MAX(COUNT(color_id))
和
Invalid use of group function
这
SELECT color_id, COUNT(color_id) FROM products WHERE item_id=1234 GROUP BY item_id
退货
color_id count 1, 323 2, 122 3, 554
我正在寻找具有最多实例的color_id 3。
有没有2个查询就可以轻松获得我想要的东西的方法吗?
SELECT color_id AS id, COUNT(color_id) AS count FROM products WHERE item_id = 1234 AND color_id IS NOT NULL GROUP BY color_id ORDER BY count DESC LIMIT 1;
这将为您提供color_id以及该color_id上的计数,该计数按从最大到最小的顺序排列。我想这就是你想要的。
供您编辑…
SELECT color_id, COUNT(*) FROM products WHERE color_id = 3;