Объясните Макс в этом запросе - PullRequest
0 голосов
/ 21 января 2019

Итак, каково здесь использование MAX для поворота таблицы, без него запрос не будет работать.

SELECT
  item_id,
  MAX(IF(property_name = 'color', value, NULL)) AS color,
  MAX(IF(property_name = 'size', value, NULL)) AS size,
  MAX(IF(property_name = 'weight', value, NULL)) AS weight
FROM
  properties
GROUP BY
  item_id

1 Ответ

0 голосов
/ 21 января 2019

Использование функции агрегирования позволяет уменьшить количество строк, уплотняющих результат для каждого значения в одной (поддельной) агрегированной строке

Вы также можете использовать функцию агрегации min или другие. Использование этой функции просто для сокращения нескольких строк до одной и получения результата сводной таблицы

SELECT
  item_id,
  MIN(IF(property_name = 'color', value, NULL)) AS color,
  MIN(IF(property_name = 'size', value, NULL)) AS size,
  MIN(IF(property_name = 'weight', value, NULL)) AS weight
FROM
  properties
GROUP BY
  item_id
...