我有3列的表格:SQL有上列沒有SELECT
userid mac_address count
爲一個用戶的條目看起來是這樣的:
57193 001122334455 42
57193 000C6ED211E6 15
57193 FFFFFFFFFFFF 2
我想創建一個視圖,顯示只有那些被認爲是該用戶「常用」的MAC。例如,我想過濾掉與用戶使用最多的MAC地址相比使用的10%的MAC地址。此外,我想每個用戶1行。這可以很容易地用GROUP BY實現的,HAVING & GROUP_CONCAT:
SELECT userid, GROUP_CONCAT(mac_address SEPARATOR ',') AS macs, count
FROM mactable
GROUP BY userid
HAVING count*10 >= MAX(count)
事實上,結果如下:
57193 001122334455,000C6ED211E6 42
但是我真的不希望在數列的我視圖。但是,如果我把它拿出來的SELECT語句,我得到以下錯誤:
#1054 - Unknown column 'count' in 'having clause'
有什麼辦法,我沒有被強迫在我看來,一個討厭的數列可以執行此操作?我知道我可以使用內部查詢來做到這一點,但我想避免出於性能原因這樣做。
非常感謝您的幫助!
我不知道子查詢可以這樣使用。非常感謝,只是我正在尋找的答案! – Rapsey
但是,我碰到以下內容: #1349 - 視圖的SELECT包含FROM子句中的子查詢 任何想法? – Rapsey
@Rapsey:不,因爲您從未告訴過我們您正在使用的DBMS。 –