数据库clickhouse中有这样一个表,表名为market_item_prop_day_record,其中有字段prop_name_id,prop_value_id,sale_cnt,sale_amt,现在有这样一个需求:求每个prop_name_id下的 prop_value_id 对应的sale_cnt和top30
时间: 2023-08-04 10:04:05 浏览: 67
数据库demo,里面有个商品表
好的,对于这个需求,你可以使用如下SQL语句来实现:
```
SELECT prop_name_id, prop_value_id, sale_cnt,
ROW_NUMBER() OVER (PARTITION BY prop_name_id ORDER BY sale_cnt DESC) as rank
FROM market_item_prop_day_record
ORDER BY prop_name_id, sale_cnt DESC
```
这条SQL语句会按照prop_name_id分组,然后在每个分组内按照sale_cnt从大到小排序,接着使用ROW_NUMBER()函数为每个prop_name_id下的prop_value_id排名,并将结果返回。你可以将rank小于等于30的结果筛选出来,这样就能得到每个prop_name_id下的top30 prop_value_id以及对应的sale_cnt了。
阅读全文