Выберите сумму с группой внутри группы по - PullRequest
0 голосов
/ 28 апреля 2018

В этом примере таблица информации:

enter image description here

Как вывести эту информацию?

enter image description here

Я пытаюсь этот запрос, но он просто возвращает мне общее количество строк 'PART' для каждого 'NAMES'.

SELECT
    NAMES
  , SUM(PART = "F001") AS SUM_F001
  , SUM(PART = "F002") AS SUM_F002
  , SUM(PART = "F003") AS SUM_F003
FROM
  MY_TABLE
GROUP BY NAMES ASC 

Ответы [ 2 ]

0 голосов
/ 28 апреля 2018

U может использовать запрос следующим образом

SELECT NAMES , SUM(CASE WHEN PART = 'F001' THEN 1 ELSE 0 END) AS F001 , SUM(CASE WHEN PART = 'F002' THEN 1 ELSE 0 END) AS F002 , SUM(CASE WHEN PART = 'F003' THEN 1 ELSE 0 END) AS F003 , SUM(QTY) AS alias FROM FROM MY_TABLE GROUP BY NAMES ORDER BY NAMES ASC 
0 голосов
/ 28 апреля 2018

Вы довольно близки к вашему текущему запросу.
Но вам нужно использовать приведенный ниже запрос для корректного поворота.

SELECT 
    NAMES
  , MAX(CASE WHEN PART = 'F001' THEN QTY ELSE 0 END) AS F001
  , MAX(CASE WHEN PART = 'F002' THEN QTY ELSE 0 END) AS F002
  , MAX(CASE WHEN PART = 'F003' THEN QTY ELSE 0 END) AS F003
  , SUM(QTY) AS alias
FROM 
 FROM
  MY_TABLE
GROUP BY
  NAMES # Don't use ASC OR DESC on GROUP BY because it's deprecated
ORDER BY
 NAMES ASC 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...