我見過很多類似的問題,但無法將它們應用於我的情況。我花了很多時間在這方面掙扎,所以我很感謝你們任何人的幫助都可以借給我。在MySQL中具有最高計數輸入的子查詢
背景: 我有關係的兩個輸入的Mosaic Plot映射計數頻率屬性彼此,我試圖駕駛數據。數據來自mysql語句。還有一些簡單的過濾被應用。對於我正在使用的數據集,有很多小數值,所以數據變得有點 - 很混亂。
目標:我的目標是從每個輸入中取出最頻繁出現的N項,然後將剩餘的其餘部分存儲在「其他」倉中。 (最壞情況下降)。我相當肯定,我將不得不使用一個複雜的子查詢來做到這一點。但是,我很難將自己的大腦完全包裹在子查詢語法中。
注:我能處理產生計數或不計數,但可能更喜歡基於計數的輸出,由於性能的限制和工作涉及後按摩它的SQL結果。
Example: N=2
input1 input2
a w
a w
b w
b w
b w
c x
d x
b y
a z
Output #1 (Preferred):
input1 input2 count
a w 2
b w 3
other x 2
b other 1
a other 1
or
Output #2:
input1 input2
a w
a w
b w
b w
b w
other x
other x
b other
a other
這是我原來的查詢:
SELECT input1,input2 from `table`
where attr3 != 'aaa'
and attr4 != 'bbb'
and attr5 != 'ccc'
and attr6 != 'ddd'
我已經能夠對其進行修改,以返回子查詢使用...
SELECT input1,count(*) FROM `table`
where attr3 != 'aaa'
and attr4 != 'bbb'
and attr5 != 'ccc'
and attr6 != 'ddd'
GROUP BY input1
ORDER BY count(*) DESC
LIMIT 2
從這裏,我嘗試使用LEFT JOIN語法和UNION,但實際上完成任何工作都不成功。
MySQL和/或MS SQL Server?不要標記不涉及的產品... – jarlh