给出这些订单中的订单表和相关的物料表,我需要查找每种可能的SKU组合的订单数量。我在Magento中这样做,但这实际上只是一个SQL问题,因为我直接在数据库级别工作。用SQL计算记录组合的有效方法?
下面是每个表的相关部分:
sales_flat_order
| entity_id | int(10) unsigned | -- primary key
sales_flat_order_item
| order_id | int(10) unsigned | -- foreign key to order table's entity_id
| sku | varchar(255) |
我已经能拉我想用一个数据子查询和MySQL GROUP_CONCAT
函数,但我会l了解是否有这样做的方式更有效率和/或没有专有功能。这是我目前有:
SELECT skulist, COUNT(skulist)
FROM (
SELECT GROUP_CONCAT(DISTINCT sku ORDER BY sku) skulist
FROM sales_flat_order orders
JOIN sales_flat_order_item items ON orders.entity_id = items.order_id
GROUP BY order_id
) skulists
GROUP BY skulist;
有没有更好的方式来做到这一点?
这个GROUP_CONCAT方法是可行的,因为这个商家只出售少数SKU;然而,它不具有可扩展性,因此不具有可推广性,所以这部分是我正在寻找的。 – ScottSB