Q
具有鮮明地方條件
-2
A
回答
2
測試數據:
DECLARE @t_temp TABLE (ID smallint,
name varchar(10),
city varchar(10),
ref_id smallint);
INSERT INTO @t_temp
VALUES
(1, 'xyz', 'a', 101),
(2, 'pqr', 'a', 102),
(3, 'ijk', 'a', 103),
(4, 'abc', 'b', 104),
(5, 'ahg', 'c', 10);
實際查詢:
SELECT ID
, name
, city
, ref_id
FROM (SELECT *
, ROW_NUMBER() OVER (PARTITION BY city ORDER BY ref_id DESC) Ranking
FROM @t_temp) base
WHERE Ranking = 1;
結果:
ID name city ref_id
------ ---------- ---------- ------
3 ijk a 103
4 abc b 104
5 ahg c 10
基本上,我正在做的是爲所有記錄分配一個'排名'city
,並排序ref_id
,然後只保留「第一」的記錄。這是Rahul提出的替代方案,也是解決您的問題的有效方法。兩者之間唯一的區別是,在拉胡爾的例子中,如果多個記錄存在相同的city
和ref_id
(考慮它是最高的),他將返回多個記錄,其中上述解決方案將僅返回單個記錄。要達到與Rahul相同的行爲,您可以將ROW_NUMBER()
更改爲RANK()
或DENSE_RANK()
。
-1
3
試試這個:
Select tb1.* from Table1 as tb1
inner join (
Select city, Max(ref_id) as 'ref_id' from Table1 group by city
) as tb2
on tb1.city = tb2.city and tb1.ref_id = tb2.ref_id
相關問題
- 1. 具有鮮明的對值
- 2. 具有鮮明的節點
- 3. 使用SQL Server具有鮮明的條件
- 4. 有序鮮明
- 5. 如何執行左外連接具有鮮明的條款
- 6. Django的查詢具有鮮明和ORDER_BY
- 7. Hibernate的新關鍵字具有鮮明
- 8. 複雜MySQL查詢具有鮮明
- 9. 休眠JPA:JoinTable具有鮮明列
- 10. SQL服務器 - INNER JOIN具有鮮明
- 11. 查詢具有鮮明和group by
- 12. 查詢具有鮮明和ORDER BY
- 13. VB LINQ:有鮮明
- 14. 具有鮮明的領域MongoDB的查詢選擇文件
- 15. 用鮮明的 'IN' 條款時
- 16. Postgres的:獲取鮮明的條目
- 17. 返回所有列具有鮮明的多個列在SQL表
- 18. 有條件的地方或條件linqtosql
- 19. LINQ鮮明的()
- 20. 「鮮明」 列
- 21. MySQL - 有條件的地方
- 22. SQL有條件的地方
- 23. MySQL有條件的地方條款
- 24. 如何以簡明的方式有條件地引發異常?
- 25. LINQ到查找具有鮮明的項目和數量
- 26. 如何創建具有鮮明操作的指標。 RavenDB
- 27. 春季安全3.2.1多重登錄表單具有鮮明WebSecurityConfigurerAdapters
- 28. 的Oracle SQL GROUP BY CUBE具有鮮明的ID
- 29. 雙表格加入電網具有鮮明行
- 30. 幫助具有鮮明行和數據排序
顯示我們預期的結果,從這個樣本數據和是否使用的是'RDBMS'標記您的數據庫還 –
? – Wanderer
「結果應該包含所有列」,如果城市有多個同樣更高的'ref_id',那麼你想要哪一行? –