首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sql显示每个组的前10位所需产品。

Sql显示每个组的前10位所需产品。
EN

Stack Overflow用户
提问于 2015-03-19 09:03:58
回答 2查看 66关注 0票数 0

下面的数据存储在我的数据库中。

我想知道每辆车搜索最多的10个部件是什么。下面是一个存储在数据库中的数据的例子。

一个表包含带有汽车id的汽车的名称。

一个表包含每辆汽车一个或多个请求id(S)的请求。

一个表包含带有所请求部件名称的请求id。

代码语言:javascript
复制
Table cars

audi        (7)
bmw         (12)

Table request
7           (100)
7           (234)
7           (367)
7           (562)
7           (729)
7           (765)
7           (881)

Table request_parts

100         (achterband)
234         (voorband)
367         (motor)
562         (accu)
729         (achterband)
765         (kopeling)
881         (koeling)

查询应该返回的内容如下所示,在示例'achterband‘中发现了两次

代码语言:javascript
复制
audi        achterband      2
audi        voorband        1
audi        motor           1
audi        accu            1
audi        kopeling        1

我现在有一个疑问,那就是每辆车都有多少次要求使用“马达”这个部件。然而,我不知道如何做到这不仅是对一个产品,但对所有他们在同一时间。现在有汽车的名字并不重要,因为id已经显示出来了。

代码语言:javascript
复制
SELECT COUNT(*), requests.sibben_brand_id, request_parts.name
FROM request_parts
JOIN requests ON requests.id = request_parts.request_id
WHERE requests.sibben_brand_id IS NOT NULL 
AND request_parts.name LIKE  'motor'
GROUP BY requests.sibben_brand_id 
ORDER BY COUNT(*) DESC ` 

有没有人知道我怎样才能得到正确的数据?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-19 09:09:02

试着用这个:

代码语言:javascript
复制
SELECT COUNT(*), requests.sibben_brand_id, request_parts.name
FROM request_parts
JOIN requests ON requests.id = request_parts.request_id
WHERE requests.sibben_brand_id IS NOT NULL 
GROUP BY requests.sibben_brand_id,request_parts.name
ORDER BY COUNT(*) DESC ` 
票数 1
EN

Stack Overflow用户

发布于 2015-03-19 09:59:29

使用

代码语言:javascript
复制
cars table as (id,name)
request table as (id,car_id,request_id)
request_parts table as (id,request_id,part_name)`

以下查询返回前10条记录

代码语言:javascript
复制
select top 10 c.name, rqp.part_name,count(*) as repetition
from request as r, request_parts as rqp, cars as c
where rqp.request_id = r.request_id AND r.car_id = c.Id
group by rqp.part_name,c.name
order by repetition desc`
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29140488

复制
相关文章

相似问题

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