【问题标题】:How to select top value using two table如何使用两个表选择最高值
【发布时间】:2013-09-11 07:01:22
【问题描述】:

我有两张桌子

table1:itemTbale
table2:itemDetails


itemTable contain
id | itemName

itemDetails
id | itemID | price | details

表可能包含这样的数据

  id | itemName
   1    Vechile
   2    Fruits


id | itemID | price | details
1      1      80$     bla bla
2      1      150$    bla bla bla
3      1      200$    bla bla
4      2       5$      ..
5      2       8$     ..bla
6      2       7$      bla..

现在我必须为每个 itemID 选择最重要的项目详细信息

喜欢

 id | itemID | price | details  |itemName
 1     1       80$      bla bla   Vechile
 4     2        5$      ..        Fruits.

我对查询有点困惑。帮帮我 提前谢谢你。

【问题讨论】:

  • 您使用的是哪个数据库?
  • 我使用的是 sql server 2008
  • 选择 min(price)..... 按 itemID 分组
  • 我不需要使用 max(price) 过滤数据...我只需要每个 itemID 的前 1 个 itemdetails

标签: sql sql-server-2008 select join


【解决方案1】:
;WITH MyCTE AS
(
    SELECT D.id,
           D.itemID,
           D.price,
           D.details,
           T.itemName,
           ROW_NUMBER() OVER(PARTITION BY D.itemID ORDER BY D.id) AS row_num
    FROM   itemTable T
           JOIN itemDetails D
               ON T.id = D.itemId
)

SELECT id,
       itemID,
       price,
       details,
       itemName
FROM   MyCTE
WHERE  row_num = 1

查看this FIDDLE

【讨论】:

    猜你喜欢
    • 2011-12-14
    • 1970-01-01
    • 2021-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-12
    • 2012-03-07
    • 2017-09-17
    相关资源
    最近更新 更多