MYSQL动态交叉表问题

发布于 2024-11-16 13:32:44 字数 506 浏览 5 评论 0原文

这里是新手。

我正在使用 codeigniter 和 mysql 如何动态(名称数量可能会改变)将表从: 转换

+------+-------+-------+
| date | name  | value |
+------+-------+-------+
| 06-01|   A   |  1    |
| 06-02|   A   |  2    |
| 06-02|   B   |  3    |
| 06-03|   C   |  4    |
+------+-------+-------+

为:

+------+---+---+---+
| date | A | B | C |
+------|---+---+---|
| 06-01| 1 |   |   |
| 06-02| 2 | 3 |   |   
| 06-03|   |   | 4 |
+------+---+---+---+

谢谢。

Newbie here.

I'm using codeigniter and mysql
How can I dynamically (number of names may change) convert table from:

+------+-------+-------+
| date | name  | value |
+------+-------+-------+
| 06-01|   A   |  1    |
| 06-02|   A   |  2    |
| 06-02|   B   |  3    |
| 06-03|   C   |  4    |
+------+-------+-------+

To:

+------+---+---+---+
| date | A | B | C |
+------|---+---+---|
| 06-01| 1 |   |   |
| 06-02| 2 | 3 |   |   
| 06-03|   |   | 4 |
+------+---+---+---+

?

Thank you.

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

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

发布评论

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

评论(1

此岸叶落 2024-11-23 13:32:44

像这样的东西应该有效。

SELECT date,
       SUM(IF(name='A',value,0)) AS 'A',
       SUM(IF(name='B',value,0)) AS 'B',
       SUM(IF(name='C',value,0)) AS 'C'
FROM myTable
GROUP BY date
ORDER BY date

您需要知道列名是什么,才能将每个 SUM 手动添加到 SQL 语句中,但如果可能发生很大变化,您可以使用 PHP 来完成此操作。

同样,如果您只想计算每个名称出现的次数,而不是 name 中值的总数,请将 value 替换为 1

Something like this should work.

SELECT date,
       SUM(IF(name='A',value,0)) AS 'A',
       SUM(IF(name='B',value,0)) AS 'B',
       SUM(IF(name='C',value,0)) AS 'C'
FROM myTable
GROUP BY date
ORDER BY date

You need to know what your column names could be to add each of the SUMs manually into your SQL statement, but you could do this using PHP if it was likely to change a lot.

Likewise, replace value with 1 if you just wanted a count of how many times each name appeared, rather than the total of the values in name.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文