【发布时间】:2014-03-26 10:57:33
【问题描述】:
我有这样的查询,它给了我关于商店畅销商品的结果,目前它工作正常,但现在我想从每家商店只获得一种产品,以便有一个独特的 si.shop_id 只有一个商店的畅销产品
SELECT `si`.`id`, si.shop_id,
(SELECT COUNT(*)
FROM `transaction_item` AS `tis`
JOIN `transaction` as `t`
ON `t`.`id` = `tis`.`transaction_id`
WHERE `tis`.`shop_item_id` = `si`.`id`
AND `t`.`added_date` >= '2014-02-26 00:00:00')
AS `count`
FROM `shop_item` AS `si`
INNER JOIN `transaction_item` AS `ti`
ON ti.shop_item_id = si.id
GROUP BY `si`.`id`
ORDER BY `count` DESC LIMIT 7
这给了 mu 一个类似的结果:
+--------+---------+-------+
| id | shop_id | count |
+--------+---------+-------+
| 425030 | 38027 | 111 |
| 291974 | 5368 | 20 |
| 425033 | 38027 | 18 |
| 291975 | 5368 | 12 |
| 142776 | 5368 | 10 |
| 397016 | 38027 | 9 |
| 291881 | 5368 | 8 |
+--------+---------+-------+
有什么想法吗?
编辑 所以我为它创造了一个小提琴 http://sqlfiddle.com/#!2/cfc4c/1
现在查询返回最畅销的产品我希望它只从商店返回一种产品所以小提琴的结果应该是
+----+---------+-------+
| ID | SHOP_ID | COUNT |
+----+---------+-------+
| 1 | 222 | 3 |
| 4 | 333 | 2 |
| 8 | 555 | 1 |
| 9 | 777 | 1 |
+----+---------+-------+
【问题讨论】:
-
请提供一些样本数据和期望的结果。你怎么知道交易中有哪些项目?