我有一個包含以下列(id,fkid,flag1,flag2,flag3,flag4)的表。每個標誌字段的可能值是-1到3,並且允許null。我需要的是一個查詢來檢查給定的外鍵fkid的值爲2的任何標誌字段的計數是否大於3。我正在做的是寫每個字段的查詢。它有效,但對我來說不是很聰明。任何人有更好的主意?謝謝。對於複雜情況的最佳查詢
0
A
回答
1
你可以用一個查詢做到這一點:
select fkid
from t
group by fkid
having sum(case when flag1 = 2 then 1 else 0 end) > 3 or
sum(case when flag2 = 2 then 1 else 0 end) > 3 or
sum(case when flag3 = 2 then 1 else 0 end) > 3 or
sum(case when flag4 = 2 then 1 else 0 end) > 3
我與評論非常同意,雖然,樣本數據,抽樣結果,以及清晰的表結構將大大改善這個問題。
+0
謝謝Gordon。這正是我所尋找的。 –
1
查詢下面也將回答你的問題,SQL小提琴例如:http://sqlfiddle.com/#!3/adda9/2
SELECT
DISTINCT fkid
FROM
tblTest pvt
UNPIVOT
(
FlagValue FOR Flag IN
(flag1,flag2,flag3,flag4)
) as Unpvt
WHERE
FlagValue = 2
GROUP BY
FKID, FLAG
HAVING COUNT(*)>3
+0
謝謝。這是檢查大量列的更清晰的方法。 –
相關問題
- 1. 最佳情況和最壞情況下的時間複雜度
- 2. CTE對於複雜查詢
- 3. 在給定sql查詢的情況下轉換複雜查詢
- 4. 算法的最壞情況複雜度
- 5. 最壞情況下的時間複雜
- 6. 對於這個複雜的MySQL查詢
- 7. 複製情況的最佳做法
- 8. 複雜情況下的Rspec
- 9. 查找以下算法的最差情況複雜度
- 10. 如何估計時間複雜度的最佳,最差和平均情況?
- 11. 複雜對象的Vuex最佳實踐
- 12. 最佳的Rails 3.1的做法是複雜的查詢
- 13. 什麼是創建RESTful複雜查詢的最佳方式?
- 14. 實體框架 - 複雜的查詢最佳實踐
- 15. 協助編寫複雜SQL查詢的最佳工具?
- 16. 矩陣乘法最壞的情況下,最好的情況下和平均情況下的複雜性
- 17. 冒泡排序最壞的情況下,最好的情況下和平均情況下的複雜性
- 18. 平均數計算最壞的情況下,最好的情況下和平均情況下的複雜性
- 19. 針對特定的MySQL日期查詢情況的最佳做法
- 20. 關於複雜對象的最佳實踐TDD
- 21. 查找代碼的最佳情況和最差情況下的執行時間
- 22. 針對這種情況運行查詢的最佳方式是什麼?
- 23. 需要針對複雜報表的最佳結構化連接查詢
- 24. 複雜查詢
- 25. 複雜查詢
- 26. 複雜查詢
- 27. 對於以下情況,這將是最佳加密方式?
- 28. 不同於複雜的sql查詢
- 29. 基於兩個表的複雜查詢
- 30. MySQL的複雜的if/else之情況
它看起來像你的數據庫沒有正確歸,也是其很難幫助這麼少的信息,您能不能告訴我們表創建以及您正在使用的查詢? –
是不是所有的「[value] 2 [is]大於3」都是false? (顯示當前的嘗試會使問題更加清晰,發佈執行時間,查詢計劃和模式對於「性能」問題至關重要。) – 2012-11-09 20:39:00