mysql分组后在原有数据上再做二次分组
时间: 2024-03-05 13:50:47 浏览: 50
如果你想在 MySQL 中进行分组后再在原有数据上进行二次分组,可以使用嵌套查询或者子查询的方式来实现。
假设有一个表格 `orders`,包含以下字段:`id, customer_id, product, price, date`,现在我们想要统计每个客户购买的产品总数,并按照购买产品总数进行分组,然后针对每个分组中的客户,再按照购买日期进行分组,统计每个客户在每个日期购买的产品总数,可以使用如下 SQL 语句:
```
SELECT customer_id, date, COUNT(*) AS total_products
FROM orders
GROUP BY customer_id, date
HAVING customer_id IN (
SELECT customer_id
FROM (
SELECT customer_id, COUNT(*) AS total_products
FROM orders
GROUP BY customer_id
) AS subquery
WHERE total_products > 2
)
ORDER BY customer_id, date;
```
这里首先使用了一个子查询来统计每个客户购买的产品总数,并将购买产品总数大于 2 的客户筛选出来,然后在原有数据上进行二次分组,统计每个客户在每个日期购买的产品总数。注意,在二次分组时,需要将 `customer_id` 和 `date` 两个字段同时作为分组字段。
阅读全文