如何将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表的行转置为列 的相关文章

  • PDO SQLSRV 和 PDO MySQL 在获取 int 或 float 时返回字符串

    当您获取时 PDO MS SQL Server 和 PDO MySQL 都会返回一个字符串数组 即使列的 SQL 类型本应是数字类型 例如 int 或 float 我设法解决了这个问题 但我想了解为什么它们一开始就这样设计 是不是因为PDO
  • 查询中列的顺序重要吗?

    当从 MySQL 表中选择列时 与表中的顺序相比 选择列的顺序是否会影响性能 不考虑可能覆盖列的索引 例如 您有一个包含行 uid name bday 的表 并且有以下查询 SELECT uid name bday FROM table M
  • java mysql 准备好的语句

    我正在尝试使用 java 向数据库中进行简单的插入 它告诉我我的 sql 语法已关闭 但是 当我复制打印出来的字符串并将其放入 phpmyadmin 中的 sql 命令中时 它会正确执行该命令 并且我似乎无法弄清楚 java 中的字符串查询
  • 如何在 Laravel 查询中使用多个 OR,AND 条件

    我需要 Laravel 查询帮助 我的自定义查询 返回正确结果 Select FROM events WHERE status 0 AND type public or type private 如何写这个查询Laravel Event w
  • 查找 PostgreSQL 中所有范围集合的所有交集

    我正在寻找一种有效的方法来查找时间戳范围集之间的所有交集 它需要与 PostgreSQL 9 2 配合使用 假设这些范围代表一个人可以见面的时间 每个人都可以有一个或多个空闲时间范围 我想找到all可以召开会议的时间段 即所有人都有空的时间
  • 如何将可视选择的文本通过管道传输到 UNIX 命令并将输出附加到 Vim 中的当前缓冲区

    使用 Vim 我尝试将在可视模式下选择的文本通过管道传输到 UNIX 命令 并将输出附加到当前文件的末尾 例如 假设我们有一个 SQL 命令 例如 SELECT FROM mytable 我想做如下的事情
  • 阻止注销页面后的后退按钮

    我有 php 注销页面 当用户单击注销链接时 请参阅此页面并重定向到索引页面 但是当单击后退按钮时 我会看到带有用户数据的上一页 当然 当我刷新页面时 我看不到以前的页面和数据 我在单击注销并单击后退按钮后检查了其他代码 drupal 但我
  • 拆分列中的字符串并在列中添加值

    我有一个包含几行数据的表 如下所示 16 W 2 Work ALBO 00 Proposal ALxO Amendement 1 20091022 signed pdf 17 W 2 Work ALBO 00 Proposal Level1
  • Oracle:使用SQL或PL/SQL查找动态SQL中的错误位置

    如何在 PL SQL 或 SQL 中找到动态 SQL 语句中的错误位置 从 SQL Plus 中 我看到了错误的位置 例如 无效的 SQL DML 语句 SYS orcl gt SELECT 2 X 3 FROM 4 TABLEX 5 TA
  • InnoDB 因读未提交而死锁! - Java - Glassfish - EJB3(JPA/Hibernate)

    几天来 我在使用 Glassfish EJB3 和 Mysql InnoDB 的 Java 应用程序上遇到了死锁问题 配置 Mysql InnoDB Ver 14 12 Distrib 5 0 51a 适用于 debian linux gn
  • 如何正确转义mysql?

    我刚刚发现如果我写 select from tbl where name like foo 然后添加 foo 作为参数及其值 a 用户数据 它不会正确转义 我勒个去 它想要 a 即使我使用参数 我还是忍不住觉得我对 sql 注入持开放态度
  • 为什么我的 if 语句没有按我预期的方式工作?

    我正在尝试实现以下目标 我向我的 SQL 数据库询问使用SELECT FROM subjects 这样做之后我要求使用数组mysqli fetch assoc 在那之前一切都很好 现在的问题是 当我尝试在每个循环中修改 genero 的值
  • 如何在Sequelize中设置查询超时?

    我想看看如何在 Sequelize 中设置查询的超时时间 我查看了 Sequelize 文档以获取一些信息 但我找不到我要找的东西 我发现的最接近的是 pools acquire 选项 但我不想设置传入连接的超时 而是设置正在进行的查询的超
  • MySQL PHP邮政编码比较具体距离

    我试图找出比较一个邮政编码 用户提供的 和一大堆其他邮政编码 现在大约有 200 个邮政编码 之间的距离的最有效方法 相对于加载时间 但它会随着时间的推移而增加 我不需要任何精确的东西 只是在球场上 我下载了整个美国的邮政编码 csv 文件
  • Apache、PHP 和 MySQL 可移植吗?

    我可以在外部硬盘上运行 Apache PHP 和 MySQL 吗 我需要这个 因为我在不同的地方工作 计算机 有时我没有安装和配置所有使用的应用程序 当然可以 XAMPP http www apachefriends org en xamp
  • sql server 按组排名

    问题看似简单 但我却无法理解 这是针对 sql 服务器的 what I have in a table What I need as a output cksum id cksum id 2162514679 204 2162514679
  • 如何在 PostgreSQL 中使用具有多个值的 SQL LIKE 条件?

    有没有更短的方法来查找多个匹配项 SELECT from table WHERE column LIKE AAA OR column LIKE BBB OR column LIKE CCC 这个问题适用于 PostgreSQL 9 1 但如
  • 将古吉拉特语文本插入 MySQL 表会产生垃圾字符和不可读的文本

    我有三个 MySQL 表 我正在向其中插入古吉拉特语内容 当我插入两个表时 它们插入得很好并且可读 但在一个表中 它显示垃圾字符 不可读的文本 我怎样才能解决这个问题 MySQL 有每个表的字符集设置 http dev mysql com
  • Mysql 创建定义器

    我创建了一个在 CentOS Web 服务器上运行的 Intranet Web 应用程序 该应用程序使用另一个本地服务器 始终是 CentOS 作为 MySQL 数据库 在数据库内部我创建了例程 这些例程总是这样开始 CREATE DEFI
  • 将第三个表链接到多对多关联中的桥接表

    设计这个数据库的正确方法是什么 这是我设置表格的方式 我在名为 教师 的表和名为 仪器 的表之间存在多对多关系 然后我有一个连接两者的桥接表 我想将另一个表与 BRIDGE 表关联起来 意思是乐器 老师的组合 该表有 3 行 指定老师可以教

随机推荐

  • 将 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