我想分類產品的評論放在圖表中。總結成績,我打破的結果集分爲四個夾頭:按條件聯合SQL請求:丟失行?聯盟失敗?
Score >= 4.5
Score < 4.5 && Score >= 4
Score < 4 && Score >= 3
Score < 3
的SQL請求可以在下面看到:
SELECT DISTINCT COUNT(*) AS cnt
FROM reviews
WHERE score >= 4.5
AND id = 4
AND live = '1'
UNION
SELECT DISTINCT COUNT(*) AS cnt
FROM reviews
WHERE score >= 4
AND score < 4.5
AND id = 4
AND live = '1'
UNION
SELECT DISTINCT COUNT(*) AS cnt
FROM reviews
WHERE score >= 3
AND score < 4
AND id = 4
AND live = '1'
UNION
SELECT DISTINCT COUNT(*) AS cnt
FROM reviews
WHERE score < 3
AND id = 4
AND live = '1'
這一操作將在陣列中放。我注意到上面的請求返回行,或計數的總和等於13.我得到的結果如下:
做以下請求......
SELECT score
FROM reviews
WHERE live = '1'
AND id = 4
...返回14行。我想也許結果集可能會導致問題,但我沒有看到任何結果。該組得分如下:
5.0,5.0,5.0,5.0,4.9,4.9,4.9
4.8,4.8,4.7,4.4,4.2,3.4,2.6
I」米不知道爲什麼單行缺失,任何想法,也許我的語法不符合?爲什麼最後的聯盟(score < 3
)沒有任何回報?
如果你只想根據分數範圍來計數評論,那麼一個案例組可以比聯盟快得多。 – Tim3880
您可以刪除DISTINCT,因爲COUNT(*)無總是返回一行。 – jarlh