通过查询将id替换为group in value

时间:2017-12-30 09:16:56

标签: sql postgresql

我有下表

order_to_service(
id,
order_id,
service_id

);
service(
 id,
 name

);

我想要的是 - 从此表中选择最受欢迎的服务,我的查询:

 select service_id ,count(order_id)  from order_to_service  group by service_id 

我有以下输出:

6;9
4;124
1;40
2;37

现在我想将服务名称替换为服务名称以获得以下输出:

wash;9
wifi;124
pc;40
juice;37

如何更新我的第一个查询以获得此类输出?

1 个答案:

答案 0 :(得分:2)

假设service表格中包含name列,那么简单连接应该有效:

select
    s.name,
    count(o.order_id)
from order_to_service o
inner join service s
    on o.service_id = s.id
group by
    o.service_id,
    s.name;

我按服务ID和名称分组,因为名称可能不是唯一的。但是服务ID和名称的组合应该是唯一的。