我有兩張不同郵票的桌子。我們稱他們爲oristamp和tarstamp。我只需要找到相同的oristamp有不同的tarstamps的記錄。用簡單的查詢可以做到這一點?我認爲應該使用遊標,但我不熟悉這一點。任何幫助?SQL查詢或光標?
0
A
回答
1
使用一個子查詢找到oristamp具有至少兩個不同的tarstamp值的值。加入該子查詢:
select t1.*
from tablename t1
join (select oristamp from tablename
group by oristamp
having count(distinct tarstamp) >= 2) t2 on t1.oristamp = t2.oristamp
0
你可以指望不同oristamp
S的每tarstamp
數量和選擇具有tarstamp
s的多個oristamp
行,如:
SELECT *
FROM mytable
WHERE tarstamp IN (SELECT tarstamp
FROM mytable
GROUP BY tarstamp
HAVING COUNT(DISTINCT oristamp) > 1)
0
嘗試此查詢,這將返回所有那些含有組合不同的oristamp。
select distinct z.* from (select oristamp, count(*) ct from mytable Group by oristamp )z, (Select oristamp, tarstamp, count(*) ct from mytable Group by oristamp, tarstamp )y Where z.oristamp =y.oristamp And z.ct != y.ct
+0
僅有代碼的答案被認爲是低質量的。你能否添加一些解釋? –
2
我希望我能理解這個問題。我假設你想要每個oristamp存在多於1個不同的tarstamp值的行。
DECLARE @t table(tarstamp int, oristamp int)
INSERT @t values
(1,1),
(1,1),
(1,2),
(2,2)
;WITH CTE as
(
SELECT *,
max(tarstamp) over (partition by oristamp) mx,
min(tarstamp) over (partition by oristamp) mn
FROM @t
)
SELECT *
FROM CTE
WHERE mx <> mn
0
在你的情況下,使用MIN和MAX聚合函數將執行作爲COUNT(DISTINCT oristamp)>更好1增加了複雜性的執行計劃:
SELECT tarstamp
FROM mytable
GROUP BY tarstamp
HAVING MIN(oristamp) != MAX(oristamp)
0
嘗試使用簡單連接:
DECLARE @t table(tarstamp int, oristamp int)
INSERT @t values
(1,1),
(1,1),
(1,2),
(2,2)
SELECT t1.*
FROM @t t1
INNER JOIN @t t2
ON t1.oristamp = t2.oristamp
WHERE t1.tarstamp <> t2.tarstamp
相關問題
- 1. 多個SQL查詢或光標?
- 2. SQL查詢中的光標值
- 3. 的Oracle SQL動態查詢到光標
- 4. SQL SERVER查詢幫助(使用光標?)
- 5. 光標或原始查詢崩潰,
- 6. 光標和查詢
- 7. sqlite android查詢(光標)
- 8. 光標的動態查詢
- 9. SQL查詢或子查詢
- 10. SQL子查詢到LINQ或標準C#
- 11. 如何更新此查詢沒有循環或光標在SQL Server 2005中
- 12. 遊標SQL查詢
- 13. 標記SQL查詢
- 14. 的Oracle 11g PL/SQL光標,相交查詢
- 15. 將帶有光標的t-SQL查詢轉換爲Microsoft Access
- 16. 安卓保存SQL查詢結果作爲光標例外
- 17. 試圖做一個SQL查詢,而不使用光標
- 18. ROWNUM在Oracle SQL查詢的光標不工作
- 19. 複雜的SQL查詢或查詢
- 20. 噸-SQL:光標和光標靜態
- 21. Android內容提供商光標查詢
- 22. MongoDB查詢,使用光標過濾
- 23. Android - 內容提供者查詢光標
- 24. 從光標檢索SQLite查詢數據
- 25. SQLIte查詢返回空的光標
- 26. 查詢中更改光標後 - onStart()?
- 27. 光標查詢中的行數限制
- 28. Sqllite查詢返回光標0行
- 29. 光標查詢再回到1 mCount
- 30. 錯誤與查詢選擇光標
謝謝你的回答@jarlh。看起來比看起來容易。始終在學習...... – PJLG