【问题标题】:Explain Max in this query在这个查询中解释 Max
【发布时间】:2019-06-15 06:36:37
【问题描述】:

那么,这里的 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

【问题讨论】:

  • 它会按字母顺序为您提供每个项目的最后颜色、大小和重量(假设 value 是字符串数据类型)。

标签: mysql sql aggregation


【解决方案1】:

使用聚合函数可以减少将结果压缩为单个(假)聚合行中的每个值的行数

您也可以使用 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-19
    • 1970-01-01
    • 1970-01-01
    • 2021-05-07
    • 2016-10-03
    • 2013-07-15
    • 1970-01-01
    相关资源
    最近更新 更多