0
我有以下查询:分组多列
SELECT od.product_id, od.product_name, od.product_quantity, od.product_price,
o.id_address_delivery, a.id_country, a.id_state, s.name
FROM `ps_order_detail` od
LEFT JOIN ps_orders AS o ON od.`id_order` = o.`id_order`
LEFT JOIN `ps_address` AS a ON o.`id_address_delivery` = a.`id_address`
LEFT JOIN `ps_state` AS s ON a.id_state = s.id_state
ORDER BY o.`date_add` DESC
LIMIT 100;
凡返回类似以下数据:
PRODUCT_ID | product_name | product_qty | product_price | id_state
我想知道在每个州的最畅销产品(数量方面)。例如:
状态A:最好的卖方产品A(500出售的量) 状态B:最畅销的是产品C(150出售量) 状态C:最好的卖方产品A(100出售的量)
目前我正在考虑做2列之间的JOIN,但第二个想到这需要像功能“枢轴”。
我知道如何获得合计卖出数量为每种产品
SELECT od.product_id, od.product_name, COUNT(od.product_id) AS 'total'
FROM `ps_order_detail` od
GROUP BY od.product_id
ORDER BY od.product_id DESC
LIMIT 100;
我也知道卖量为每个州总,但我不知道如何既结合才达到我需要什么。我会很感激任何帮助。谢谢
你的小组将在5.7失败,'ONLY_FULL_GROUP_BY' – Drew
@Drew,将在所有MySQL版本,如果启用ONLY_FULL_GROUP_BY :)不同的是,在最新版本的5.7 ONLY_FULL_GROUP_BY是默认启用的失败,而在以前的版本不是这样。尽管product_name可能在功能上依赖于product_id,但即使启用了ONLY_FULL_GROUP_BY,最新版本的MySQL甚至可能允许查询。 – Shadow
Right @ Shadow开箱即用。当然它是可配置的。 5.7最终会不愿意让自己在脚下自己拍摄 – Drew