我试图获得下表中每个商店的价格模式(最常出现在一组数据中的价值)
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
答案 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);