MySql 具有多个列

发布于 2024-09-15 03:27:33 字数 412 浏览 6 评论 0原文

我有一张表,

------------------
1  | 20,00 | A  |
2  | 20,00 | A  |
3  | 20,00 | A  |
4  | 20,00 | A  |
1  | 50,00 | B  |
2  | 50,00 | B  |
3  | 50,00 | B  |
4  | 50,00 | B  |

我想使用 group by 来生成这个表。

id   | A     | B     |
----------------------
1    | 20,00 | 50,00 |
2    | 20,00 | 50,00 |
3    | 20,00 | 50,00 |
4    | 20,00 | 50,00 |

你能帮助我吗?

I have this table

------------------
1  | 20,00 | A  |
2  | 20,00 | A  |
3  | 20,00 | A  |
4  | 20,00 | A  |
1  | 50,00 | B  |
2  | 50,00 | B  |
3  | 50,00 | B  |
4  | 50,00 | B  |

I wold like to produce this one using group by.

id   | A     | B     |
----------------------
1    | 20,00 | 50,00 |
2    | 20,00 | 50,00 |
3    | 20,00 | 50,00 |
4    | 20,00 | 50,00 |

Can you help me?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

小矜持 2024-09-22 03:27:33

这是一个标准的数据透视查询:

  SELECT t.id,
         MAX(CASE WHEN t.col = 'A' THEN t.value ELSE NULL END) AS A,
         MAX(CASE WHEN t.col = 'B' THEN t.value ELSE NULL END) AS B
    FROM TABLE t
GROUP BY t.id

MySQL 不支持 PIVOT/UNPIVOT 语法。

It's a standard pivot query:

  SELECT t.id,
         MAX(CASE WHEN t.col = 'A' THEN t.value ELSE NULL END) AS A,
         MAX(CASE WHEN t.col = 'B' THEN t.value ELSE NULL END) AS B
    FROM TABLE t
GROUP BY t.id

MySQL doesn't support PIVOT/UNPIVOT syntax.

第几種人 2024-09-22 03:27:33

这看起来不像group by问题。但您可以通过 join 轻松解决该问题。

SELECT
  a.id,
  a.a,
  b.b
FROM table AS a
JOIN table AS b ON a.id = b.id
WHERE a.name = 'A' AND b.name = 'B'

This doesn't look like a group by problem. But you can easily solve it with a join.

SELECT
  a.id,
  a.a,
  b.b
FROM table AS a
JOIN table AS b ON a.id = b.id
WHERE a.name = 'A' AND b.name = 'B'
逐鹿 2024-09-22 03:27:33

假设您的表是“table_name”,第一列是“id”,第二列是“Value”,第三列是“Type”,并且是带有“A”或“B”的枚举:

SELECT
    a.ID,
    a.Value,
    b.Value
FROM table_name AS a,
    table_name AS b
WHERE a.ID=b.ID AND
    a.Type='A' AND
    b.Type='B'

Assuming that your table is "table_name", the first column is "id", the second column is "Value", the third column is "Type" and is an enum with 'A' or 'B':

SELECT
    a.ID,
    a.Value,
    b.Value
FROM table_name AS a,
    table_name AS b
WHERE a.ID=b.ID AND
    a.Type='A' AND
    b.Type='B'
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文