Mysql 在“分组依据”中选择“与分组依据求和”
在本示例中,请参见表格: 如何输出此信息 我在尝试这个问题, 但它只是返回每个“名称”的“部分”行总数Mysql 在“分组依据”中选择“与分组依据求和”,mysql,mysqli,Mysql,Mysqli,在本示例中,请参见表格: 如何输出此信息 我在尝试这个问题, 但它只是返回每个“名称”的“部分”行总数 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 您与当前的查询非常接近 但您需要使用下面的查询来正确透视 SELECT
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
您与当前的查询非常接近
但您需要使用下面的查询来正确透视
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
您与当前的查询非常接近
但您需要使用下面的查询来正确透视
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
您可以按如下方式使用查询
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
您可以按如下方式使用查询
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
如果用户表中有多个条目具有相同的零件号,则使用SUM而不是MAX可能更安全。这似乎是OP在评论他的查询时所暗示的。你可能是对的@Nick iám习惯于用
MAX(…)
编写pivot查询。因为MAX(..)
在SUM不支持的所有数据类型上都能正确工作。。除此之外,此查询的输出也将匹配此预期输出。@Raymond一切正常,非常感谢。感谢“ASC或DES”提示。如果用户表中有多个条目具有相同的零件号,则使用SUM而不是MAX可能更安全。这似乎是OP在评论他的查询时所暗示的。你可能是对的@Nick iám习惯于用MAX(…)
编写pivot查询。因为MAX(..)
在SUM不支持的所有数据类型上都能正确工作。。除此之外,此查询的输出也将匹配此预期输出。@Raymond一切正常,非常感谢。谢谢你的“ASC或DES”提示。参见