首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >查询双排序

查询双排序
EN

Stack Overflow用户
提问于 2012-10-08 17:49:54
回答 2查看 226关注 0票数 1

我有一个项目表,以及它们来自哪个供应商: tabel items

代码语言:javascript
运行
复制
Ttem ID - Item Title - Supplier - Date added

一个供应商可以提供多个物料,名称和供应商不是唯一的。

我想展示最新添加的56个项目,并从这56个项目中展示排名前十的供应商

所以我个人有:

代码语言:javascript
运行
复制
select * 
from items 
order by dateadded desc 
limit 56

对于供应商来说

代码语言:javascript
运行
复制
select count(supplier) as howmany 
from items 
group by supplier 
order by howmany desc 
limit 10

我的问题是如何显示所选56种产品的前十名供应商

谢谢你的帮助

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-08 17:55:06

只需将您的两个语句组合在一起,并使用第一个语句作为子选择:

代码语言:javascript
运行
复制
select count(*) as howmany from (
    select * from items order by dateadded desc limit 56
) top_items group by supplier order by howmany desc limit 10

更新:你最初有count(supplier),它应该可以工作,但不像它可能的那样清楚(看起来你似乎在试图计算供应商的数量)。我更改为count(*)是为了强调这样一个事实,即您正在计算每个供应商的行数(商品数量)。

票数 1
EN

Stack Overflow用户

发布于 2012-10-08 17:55:01

这将为您提供最新56个产品的前10名供应商:

代码语言:javascript
运行
复制
SELECT COUNT(supplier) AS howmany
FROM items

WHERE item_id IN (
    SELECT t2.item_id
    FROM items t2
    ORDER BY t2.dateadded DESC
    LIMIT 56
)

GROUP BY supplier
ORDER BY howmany DESC
LIMIT 10;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12779220

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档