mysql - 如何在表中多次计算模式

时间:2016-07-08 23:40:43

标签: mysql count max

我试图获得下表中每个商店的价格模式(最常出现在一组数据中的价值)

create table t_products (
store_id int,
product varchar(20),
price int
)

我已经有了这个查询,它会检索每个商店中每个价格的所有发生次数

SELECT store_id, price, count(price)
FROM t_products
GROUP BY store_id, price
ORDER BY count(price) DESC;

还缺少什么?我试图使用max()函数以几种方式获得每个商店的最高价格但没有成功。

提前致谢
PD这是我当前查询的结果。

store_id|price|count(price)
2          40      5
1          70      5
2          90      4
3          60      2
1          60      1
3          50      1
3          80      1
1          50      1

我只想保留

 store    price
    2      40 
    1      70 
    3      60

2 个答案:

答案 0 :(得分:1)

select tmp.store_id, tmp.price from (
    SELECT store_id, price
    FROM t_products
    GROUP BY store_id, price
    ORDER BY count(price) DESC
) as tmp
group by tmp.store_id

祝你好运)

答案 1 :(得分:1)

SELECT store_id, value
FROM (SELECT store_id, value, count(value) c
      FROM t_products
      GROUP BY store_id, value
      ORDER  BY count(value) DESC) ds
GROUP BY store_id
HAVING max(ds.c);