Как создать запрос SQL, который группируется в определенном процентном диапазоне - PullRequest
0 голосов
/ 12 октября 2011

Я хотел бы создать SQL-запрос, который группирует увеличение цены товаров в определенном процентном диапазоне.Например,

2 элемента увеличено с 0 до 10%

4 элемента увеличено с 10 до 20%

2 элемента увеличено с 20 до 30%

...

Целевой сервер: MySQL

Ответы [ 2 ]

2 голосов
/ 12 октября 2011
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 голосов
/ 12 октября 2011

Если вы хотите, чтобы все диапазоны были на 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
);

edit:> = from и

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...