我寫了一個查詢,它給了我單獨的行的結果,但問題是我想要單行結果。如何結合使用MySQL的SQL語句的結果
其中給出導致像下面
這裏計數有兩種可能性yes或no。
,但我想是這樣
對整個結果我要爲同一個系統的名字結合起來,有沒有辦法做到這一點。
我寫了一個查詢,它給了我單獨的行的結果,但問題是我想要單行結果。如何結合使用MySQL的SQL語句的結果
其中給出導致像下面
這裏計數有兩種可能性yes或no。
,但我想是這樣
對整個結果我要爲同一個系統的名字結合起來,有沒有辦法做到這一點。
COUNT()函數接受複雜的表達式,而不僅僅是列名。我不認爲我完全理解你的數據中包含或你想完成什麼,但你可以嘗試在這條線的東西:
SELECT service.sys_name AS sysname,
COUNT(CASE status.status WHEN 'yes' THEN 1 END) AS count_yes,
COUNT(CASE status.status WHEN 'no' THEN 1 END) AS count_no
...
這將省去NULL
值。
它沒有給出正確的結果。這個查詢是錯誤的 – Bhagya
@Bhagya這幾乎是正確的查詢。問題是你想在'service.sys_name'字段上使用過濾器來從中刪除數字。你必須爲此定義規則。人們不能認爲這個名字總是有一個數字,而只是在字符串的末尾。如果你定義這個規則,你可能會得到這個答案的更新。 –
而對於答案,這應該是SUM,而不是COUNT,count會計算它是1還是0. –
你問單列,但給出一個輸出的例子有三列: –
已更新的問題@ÁlvaroGonzález – Bhagya
出於好奇,是'where service.ip_port in(select ip_port from service)'試圖過濾掉NULL?因爲我認爲'WHERE service.ip_port不是NULL'感覺更自然。 –