mysql - 将唯一列的多行组合成单行

标签 mysql grouping

我有一个表来跟踪应用程序的返回代码。我试图弄清楚如何格式化查询以将每一天的返回码返回到一行中。这是示例表:

ID  COMPUTER    RETURNCODE  DATE
--  --------    ----------  ----
1   computer1   0           May, 15 2013 00:00:00+0000
2   computer1   1           May, 16 2013 00:00:00+0000
3   computer1   1           May, 17 2013 00:00:00+0000
4   computer2   0           May, 15 2013 00:00:00+0000
5   computer2   4           May, 16 2013 00:00:00+0000
6   computer2   4           May, 17 2013 00:00:00+0000
7   computer3   0           May, 15 2013 00:00:00+0000
8   computer3   8           May, 16 2013 00:00:00+0000
9   computer3   0           May, 17 2013 00:00:00+0000

这是我尝试通过查询获得的输出:

COMPUTER    2013-05-15    2013-05-16    2013-05-17
--------    ----------    ----------    ----------
computer1       0             1             1
computer2       0             4             4
computer3       0             8             0

我在这里通过 sqlfiddle 创建了一个示例: SQL fiddle 示例:http://sqlfiddle.com/#!2/44687/1/0

感谢任何帮助!

最佳答案

这称为“旋转”数据。这是在 MySQL 中执行此操作的一种方法:

SELECT computer,
       max(case when date = '2013-05-15' then returncode end),
       max(case when date = '2013-05-16' then returncode end),
       max(case when date = '2013-05-17' then returncode end)
FROM returncodes
group by computer

关于mysql - 将唯一列的多行组合成单行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16577591/

相关文章:

php - MySQL 左连接

machine-learning - 对自由格式文本条目进行分类或聚类的好方法是什么?

r - 在 R 中聚合顺序和分组数据

R(数据表): computing mean after join in most efficient way

即使用户名/密码很短/很长或密码不匹配,PHP 注册表也会将数据写入数据库。要改变什么?

c# - MySQL 到 MS ACCESS 2007?

mysql - 多个 ON WHERE SQL,无法让它工作

php mysql 从数组插入值

filter - elasticsearch 查询聚合排序最大日期

php - 尝试在 PHP 中按日期对事件进行分组