如何将mysql表的行转置为列

2023-12-15

这是我当前的 mysql 表的样子:

PunchID EmpID   PunchEvent  PunchDateTime
1       0456    clockin     5/14/2013 8:36:26 AM
48      0456    breakout    5/14/2013 12:01:29 PM
53      0456    breakin     5/14/2013 12:28:31 PM
54      0456    clockout    5/14/2013 2:28:33 PM
57      0456    clockin     5/15/2013 7:38:34 AM
58      0456    breakout    5/15/2013 7:38:39 AM
59      0456    breakin     5/15/2013 7:38:41 AM
60      0456    clockout    5/15/2013 7:38:42 AM

现在我想返回一个根据星期几分组的结果集,如下所示:

Day       ClockIn      BreakOut    BreakIn      ClockOut
Tuesday   8:36:26 AM  12:01:29 PM  12:28:31 PM  2:28:33 PM
Wednesday 7:38:34 AM  etc, etc...

这是我当前的查询。但它只返回每天的第一拳。

SELECT DATE_FORMAT(PunchDateTime, '%W') as day, PunchEvent, DATE_FORMAT(PunchDateTime, '%l:%m:%s %p') as time FROM timeclock_punchlog WHERE EmpID = '0456' GROUP BY DATE(PunchDateTime) ORDER BY PunchDateTime ASC;

有人可以帮我弄这个吗? 谢谢 麦克风


SELECT  DATE_FORMAT(PunchDateTime, '%W') DAY,
        MAX(CASE WHEN PunchEvent = 'ClockIn' THEN DATE_FORMAT(PunchDateTime, '%r') END) ClockIn,
        MAX(CASE WHEN PunchEvent = 'BreakOut' THEN DATE_FORMAT(PunchDateTime, '%r') END) BreakOut,
        MAX(CASE WHEN PunchEvent = 'BreakIn' THEN DATE_FORMAT(PunchDateTime, '%r') END) BreakIn,
        MAX(CASE WHEN PunchEvent = 'ClockOut' THEN DATE_FORMAT(PunchDateTime, '%r') END) ClockOut
FROM    tableName
WHERE   EmpID = 456
GROUP   BY DATE_FORMAT(PunchDateTime, '%W')
ORDER   BY PunchDateTime
  • SQLFiddle 演示

OUTPUT

╔═══════════╦═════════════╦═════════════╦═════════════╦═════════════╗
║    DAY    ║   CLOCKIN   ║  BREAKOUT   ║   BREAKIN   ║  CLOCKOUT   ║
╠═══════════╬═════════════╬═════════════╬═════════════╬═════════════╣
║ Tuesday   ║ 08:36:26 AM ║ 12:01:29 PM ║ 12:28:31 PM ║ 02:28:33 PM ║
║ Wednesday ║ 07:38:34 AM ║ 07:38:39 AM ║ 07:38:41 AM ║ 07:38:42 AM ║
╚═══════════╩═════════════╩═════════════╩═════════════╩═════════════╝
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将mysql表的行转置为列 的相关文章

  • 嵌入定义绑定变量的 Oracle PL/SQL 代码的 Shell 脚本

    如果我运行下面的脚本 我会收到错误SP2 0552 未声明绑定变量 OUTRES 那么 如何定义绑定变量OUTRES以及在哪里定义呢 usr bin bash sqlplus s scott tiger lt lt EOF declare
  • 如何使用索引更改表的列?

    我想将带有某些索引的表中 a 列的列大小从 varchar 200 更改为 varchar 8000 我应该如何进行 既然是VARCHAR你正在增加尺寸 然后简单地ALTER TABLE ALTER COLUMN https learn m
  • 自定义 Sql Server 对象资源管理器右键单击菜单项

    如何在 Sql Server 2012 的对象资源管理器中添加或自定义右键菜单项 例如 我想将新项目添加到表右键菜单中以生成自定义表创建器脚本 您可以编写一个 SSMS 加载项 See http sqlblogcasts com blogs
  • MySQL Spatial CONTAINS 显示错误结果

    我的 MySQL 空间搜索有一个奇怪的行为 我在 GEOM 字段 葡萄牙边界 中创建了一个多边形 然后我尝试在内部找到一个点 发现没问题 下一次尝试是查找多边形外部的点 但查询仍返回 1 个找到的行 请帮忙 我做错了什么 为什么它会找到多边
  • MySQL max_allowed_pa​​cket 参数有什么问题?

    我需要增加 max allowed pa cket 参数 以适应一些理论上非常大的项目 如果我将此参数设置为 10M 那么与设置为 1M 或 4M 相比 我要支付什么价格 如果有的话 感谢您的任何意见 托马斯 我找到了这个解释 http w
  • 如何使用默认约束为mysql中的列创建随机数?

    DEFAULT 约束在接受字符串或当前日期值方面没有问题 我需要的是一个约束 每次创建实体时都会创建一个随机的 4 位数字 我尝试了以下代码 但它返回语法错误 ALTER TABLE client number ADD 代码 INT 4 D
  • 如何在mysql中设置“performance_schema on”?

    我想转performance schemaON 在 mysql 中收集统计信息 我怎样才能实现这个目标 以下指南是特定于 Linux 的 但应该很容易适用于 Windows 您必须检查 mysql 服务器二进制文件是否已编译为支持它 mys
  • 检索前 10 行并对第 11 行中的所有其他行求和

    我有以下查询来检索每个国家 地区的用户数量 SELECT C CountryID AS CountryID C CountryName AS Country Count FirstName AS Origin FROM Users AS U
  • MySQL - 通过部分单词匹配和相关性评分进行高效搜索(全文)

    如何进行 MySQL 搜索 既匹配部分单词 又提供准确的相关性排序 SELECT name MATCH name AGAINST math IN BOOLEAN MODE AS relevance FROM subjects WHERE M
  • 如何从java中的字符串时间戳中提取日期和时间

    我正在获取日期和时间String TIMESTAMP来自服务器的 MySQL 格式如下 2014 02 15 05 18 08 我想要的是提取日期DD MM YYYY格式和时间HH MM SS AM PM格式 而且这个时间戳的时区是不同的
  • java.sql.SQLException:已经关闭

    我们有一个在 Tomcat 上运行的 Web 应用程序 带有 MySQL 后端 有一段时间一切都很好 然后突然我们开始遇到这个异常java sql SQLException Already closed 整个堆栈跟踪是 DEBUG org
  • 为什么使用参数化查询将数据插入表比将值附加到查询字符串更快?

    为什么使用参数化查询向表中插入数据 string queryString insert into product id name values id name 比将值附加到查询字符串更快 string queryString insert
  • 开发 WordPress 管理链接重定向到实时站点

    我正在尝试对我拥有的 WordPress 网站进行新的更改 所以我复制了所有文件并导出到新的开发子域 为子域创建新数据库并从实时站点导入数据库 直播站点 http mysite com http mysite com 开发站点 http d
  • 需要在SQL Server 2012中自动递增字符串

    考虑 SQL Server 2012 中的表 789 0000000 上面的数字在 SQL Server 2012 中将被视为字符串 但每当我更新记录时 我都需要增加到 1 例如 当我更新记录 1 时 它应该增加到789 0000001 当
  • 如何比较两个日期以查找 SQL Server 2005 中的时间差,日期操作

    我有两列 job start job end 2011 11 02 12 20 37 247 2011 11 02 13 35 14 613 如何使用 T SQL 查找作业开始和作业结束之间经过的原始时间量 我试过这个 select job
  • 当子查询具有组列时,MySQL 8 不使用 INDEX

    我们刚刚从 mariadb 5 5 迁移到 MySQL 8 一些更新查询突然变得很慢 经过更多调查 我们发现当子查询有组列时 MySQL 8不使用索引 例如 下面是一个示例数据库 桌子users维护每种类型用户的当前余额 表 帐户 维护每天
  • 分区表查询仍然扫描所有分区

    我有一个包含超过十亿条记录的表 为了提高性能 我将其分区为30个分区 最常见的查询有 id 在他们的 where 子句中 所以我决定对表进行分区id column 基本上 分区是这样创建的 CREATE TABLE foo 0 CHECK
  • SQL:删除SQL Server中的重复记录

    我有一个 sql server 数据库 我预先加载了大量数据行 不幸的是 数据库中没有主键 并且表中现在存在重复信息 我不担心没有主键 但我担心数据库中有重复项 有什么想法吗 原谅我是一个sql server新手 嗯 这就是表上应该有主键的
  • 将 SQL 变量传递给 ASP

    这里只是有点语法问题 我正在使用 SQL 和 ASP 并且到目前为止有以下代码 set rs Server CreateObject ADODB recordset rs Open Select from Questions conn sq
  • MySql 西班牙语字符数据

    我有一个包含西班牙语字符的数据库 为了填充数据库 我从字符编码 UTF 8 的客户端页面获取值 当我在 mySql 数据库中插入值时 行包含更改的数据 例如 如果我插入 M xico 数据库中的条目是 M xico 其影响是当我对指定 M

随机推荐

  • 将 pandas 系列从字符串转换为唯一的 int id [重复]

    这个问题在这里已经有答案了 我有一个系列中的分类变量 我想为每个唯一值分配整数 id 并使用 id 创建一个新系列 从而有效地将字符串变量转换为整数变量 最紧凑 最有效的方法是什么 你可以使用pandas factorize In 32 s
  • 打印堆栈跟踪

    我有一个非常短的测试文件 let print backtrace try raise Not found with Not found gt Printexc print backtrace stdout let f print backt
  • Solrj 查询 - 首先获取最相关的记录

    我有一些文件Solr 4 0 我希望首先显示最相关的记录 然后显示不太相关的记录 例如 我有 3 个文档 标题如下 收入分配政策 收入分配和经济政策 发展中国家的收入分配政策 现在当我查询类似的东西时q title Income Distr
  • 我可以在这个复杂的不规则形状链接上使用CSS悬停吗

    我已经研究了很多可能的解决方案 但仍然没有找到有效的解决方案 我正在尝试使用 CSS 让我的链接在悬停时发光 我尝试使用矩形的每个版本来包围我的图像以链接它们 但有些非常小并且会重叠 有没有办法将多坐标合并到 CSS 中 我认为我的主要问题
  • 将 Web 应用程序发布到 Azure 网站暂存部署槽因 webjob 失败

    我刚刚为我的应用程序创建了一个新的部署槽 将发布配置文件导入到 Visual Studio 但部署后我收到此错误消息 错误 8 创建 WebJob 计划时发生错误 找不到与 WebSiteName myapp staging 和 WebSi
  • 在 Git 中查找更改最多的文件

    如何显示 Git 中最常更改的文件 您可以执行以下操作 git log pretty format name only sort uniq c sort rg head 10 日志仅输出每次提交中已更改的文件的名称 而其余部分仅排序并输出前
  • AbstractTableModel getValueAt 性能

    我是新手JTable 也许我不明白什么 假设我有ArrayList共 1000 个Students id name surname age 我想向所有学生展示JTable 据我所知 我必须创造StudentTableModel that e
  • “类型*名称”和类型*名称”有什么区别?[重复]

    这个问题在这里已经有答案了 我是 C 新手 我找不到任何地方将 放在类型后面或名称前面有什么区别 例如 两者之间的区别是什么 int p int p C 编译器忽略空格 字符常量和字符串文字内的空格除外 代表着 int p int p in
  • Excel VBA 更新:查找数据、循环多个工作表、复制范围

    昨天更新此线程 Excel VBA 查找数据 循环多个工作表 复制特定单元格范围 特别感谢 findwindow 让我走到这一步 我在某个部分不断收到运行时 91 错误 并最终放入 If Then 语句以跳到下一张表 但现在我在其正下方的行
  • 用python将假分数转换为带分数

    我需要使用 python 将假分数转换为带分数 甚至将浮点数转换为带分数 我的代码如下 from fractions import Fraction numerator int input Enter numerator denominat
  • 在 MagicalRecord 中使用现有的 SQLite 数据库

    我创建了一个 SQLite 数据库 其中包含一些 JSON 的记录 使用本教程 我想使用 MagicalRecord 来查询它 MagicalRecord 看到 NSManagedObject BlogPost 并且可以创建记录 但它看不到
  • Nginx 由于不允许的 MIME 类型(“text/html”)而被阻止。角8

    everythink 与这些代码配合得很好 http include mime types default type application octet stream log format main remote addr remote u
  • 如何展平多维数组?

    在 PHP 中 是否可以在不使用递归或引用的情况下展平 双 多 维数组 我只对值感兴趣 因此可以忽略键 我在想array map and array values 可以在以下位置找到更新的解决方案下面这个答案 As of PHP 5 3最短
  • 递归导致的分段错误

    我正在编写一个程序 该程序将获取 1 10 之间的数字并显示排列数字的所有可能方式 前任 输入 3 输出 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1 每当我输入 9 或 10 时 程序就会给出分段错误并转储核心
  • 为什么浏览器将 tbody 元素插入到 table 元素中?

    我正在使用原始 html 和 JQuery 尝试一些想法 我所做的一件事是创建一个包含一组行的表格元素 table tr td Title td tr tr td 1 td tr tr td 2 td tr tr td 3 td tr tr
  • 解析 XML 内容 - C#

    我使用 XML 的时间不长 需要从 XML 响应中提取有用的信息 如果有 2 个相同但名称不同的标签 例如
  • SUMIF 仅过滤数据

    我有一个 Excel 公式 可以对特定数据列进行求和 SUMIF Data E E E 89 Data F F 我正在寻找添加一个我想要过滤的 G 列 因此 理想情况下 当我单击 数据 gt 筛选 时 我可以使 SUMIF 仅对 G 列中筛
  • 有关 using 语句的一些高级问题

    我知道这里有很多关于如何使用 using 语句和调用 Dispose 方法的线程 我已经阅读了其中的大部分主题 如果我调用 Dispose 它会调用 Close 吗 如果我想使用一个对象 比如 SqlDataReader 但随后在另一个代码
  • 使用 XPath 访问 XML 中的注释

    如何使用 XPath 访问 XML 文档中的注释 例如 table table
  • 如何将mysql表的行转置为列

    这是我当前的 mysql 表的样子 PunchID EmpID PunchEvent PunchDateTime 1 0456 clockin 5 14 2013 8 36 26 AM 48 0456 breakout 5 14 2013