這是我的查詢。在SQL中允許使用IN運算符重複
SELECT *, COUNT(A) AS FREQUENCY FROM TABA WHERE ID IN
(
(SELECT ID FROM TABA WHERE XXXXX)
UNION ALL
(SELECT ID FROM TABA WHERE XXXXX)
UNION ALL
(SELECT ID FROM TABA WHERE XXXXX)
)
GROUP BY A
ORDER BY FREQUENCY
與此查詢我總是得到的頻率值設爲1
假設說,下面的子查詢給出了下面的結果。
(SELECT ID FROM TABA WHERE XXXXX)
UNION ALL
(SELECT ID FROM TABA WHERE XXXXX)
UNION ALL
(SELECT ID FROM TABA WHERE XXXXX)
結果:
1
2
3
2
3
4
2
現在在使用時完全查詢只給唯一的記錄。
我想結果按FREQUENCY排序,在這個例子中,例如數字3的頻率是2。 我該怎麼做?我希望我有道理。
基本上,我在表中有很多列,我想執行搜索並根據搜索項的頻率返回結果。
請注意COUNT函數的行爲;如果任何記錄在「A」列中包含NULL值,則該記錄不會被「COUNT(A)」計數。這可能是你想要的行爲,我不知道,但只是想提到它。 –
您是否正在計算在A列中找到的每個特定值的出現次數,或者您是否試圖計算特定記錄與聯合選擇語句中的3個條件之一相匹配的次數?如果是後者,那麼你的頻率只能是0,1,2或3;你的意圖是? –