2011-10-11 65 views
0

我想創建一個SQL查詢,將某些百分比範圍內的項目增加價格分組。例如如何創建在特定百分比範圍內組合的SQL查詢

2項0之間提高到10%

4項10之間增加至20%

2項之間20〜30%

增加...

目標服務器:MySQL

+1

分享一些代碼。 –

+1

關於數據庫模式的一些線索?很難想象你的桌子和你需要從哪裏提取價格或範圍...... – yoprogramo

回答

2
SELECT SUM(CASE WHEN PercentChange >= 0 AND PercentChange <= 10 THEN 1 ELSE 0) END AS ZeroTen, 
     SUM(CASE WHEN PercentChange > 10 AND PercentChange <= 20 THEN 1 ELSE 0) END AS TenTwenty, 
     SUM(CASE WHEN PercentChange > 20 AND PercentChange <= 30 THEN 1 ELSE 0) END AS TwentyThirty 
    FROM MagicChangeTable 

注意:MagicChangeTable可能實際上是計算百分比變化的子查詢。

+0

在這個問題中,10%或20%(精確地)走哪一組是不明確的。但無論如何它必須是'PercentChange> = 0'。 –

+0

@ErwinBrandstetter公平點回答已修改。 –

+0

@Joe這將起作用,但是,取得範圍0到10的最有效方法是什麼?10到10等等取決於它的計算結果?是否有可能使動態分組?通過實時計算取決於百分比的範圍謝謝.. – Bartzilla

0

如果你想所有範圍由10: 用途:

SELECT (d-10)*10 AS `from` , (d-9)*10 AS `to` , c AS `count` FROM 
    (SELECT DISTINCT(FLOOR((`p`.`new`*10)/(`p`.`old`))) AS d, 
     count(1) AS c FROM prices as p GROUP BY 1) AS stats 

這樣的結構:

CREATE TABLE `prices` (
    `old` int(11) NOT NULL, 
    `new` int(11) NOT NULL 
); 

編輯:> =從和<到