SQL查询来自两个关系的前10个项目

时间:2014-10-07 23:43:09

标签: sql

我正在努力纠正SQL命令以获取以下前10个名称(使用标准SQL,不能使用TOP)以实现以下两种关系:

      Orders (customer_email, item_id, date)
      Items(id, name, store, price)

关于如何做到这一点的任何建议?我想我需要对它们进行分组,但是我该如何根据计数来获得前10个分组呢?

2 个答案:

答案 0 :(得分:1)

select *
  from (select x.*, row_number() over(order by num_orders desc) as rn
          from (select i.name, count(*) as num_orders
                  from orders o
                  join items i
                    on o.item_id = i.id
                 group by i.name) x) x
 where rn <= 10

答案 1 :(得分:0)

SELECT 
    COUNT(*) count_per_item
  , i.id
  , i.name
FROM   
    Orders o 
JOIN   
    Items i 
ON  (o.item_id = i.id)
GROUP BY
    i.id
  , i.name 
ORDER BY
    count_per_item DESC 
LIMIT 10; 
相关问题