我在一列中獲得了情緒分析的結果。我想展示一下每個數字代表和計數,像這樣:如何將不同查詢的結果合併爲一個?
Neg | Neutral | Pos
---------+-----+-----
30 | 55 | 100
我試過,我在互聯網上發現了許多不同的方法,但沒有成功。看起來db2語法經常變化,而且我發現的所有文檔都不適用於我當前的bluemix帳戶。
我能得到的最接近的是UNION:
SELECT COUNT(*) as NEGATIVE FROM C7 WHERE SENTIMENT = 1
union
SELECT COUNT(*) as NEUTRAL FROM C7 WHERE SENTIMENT = 2
union
SELECT COUNT(*) as Pos FROM C7 WHERE SENTIMENT = 3
然而,這給了我:
NEGATIVE
--------
30
55
100
我如何可以結合每個查詢並排側的結果嗎?
我試圖從後樞轉在DB2的答案,但我得到了錯誤:
SELECT
C7.SENTIMENT,
COUNT(CASE WHEN C7.SENTIMENT = 1 THEN Value END) AS NEGATIVE,
COUNT(CASE WHEN C7.SENTIMENT = 2 THEN Value END) AS NEUTRAL,
COUNT(CASE WHEN C7.SENTIMENT = 3 THEN Value END) AS POSITIVE,
FROM C7
GROUP BY C7.SENTIMENT
SQL0206N:SQL0206N 「VALUE」 是不是在使用它的上下文中無效。 SQLSTATE = 42703
SELECT DISTINCT
C7.SENTIMENT,
(SELECT value FROM C7 WHERE C7.SENTIMENT = 1) AS VERY_NEGATIVE,
(SELECT value FROM C7 WHERE C7.SENTIMENT = 2) AS NEGATIVE,
(SELECT value FROM C7 WHERE C7.SENTIMENT = 3) AS NEUTRAL
FROM C7
SQL0206N:SQL0206N 「VALUE」 不是在其被使用的上下文中有效。 SQLSTATE = 42703
可能重複的[DB2中的透視](https://stackoverflow.com/questions/15529107/pivoting-in-db2) –
@ Clockwork-Muse Nope,嘗試所有這些答案,非工作,將更新我的文章爲什麼不是這樣。不管怎麼說,還是要謝謝你。 –
它可能認爲'VALUE'在這裏被用作關鍵字(因爲它是一個保留字,儘管它至少可以在某些情況下用作列名)。但是除非你試圖引用的內容可以爲null,你不在乎它是什麼,所以你可以用一個常量值('1'是一個最喜歡的值)。 (從我的經驗專欄 - 沒有發現產生一個不同的例外,所以不可能源於此) –