GROUP_CONCAT 更改 GROUP BY 顺序

2023-12-07

我有一个视图(很多连接)输出按日期 ASC 排序的数据。按预期工作。

输出类似于:

ID date         tag1   other_data
1  25-03-2011   blue   fff   <=
1  26-03-2011   red    ggg
1  27-03-2011   pink   yyy
2  25-03-2011   red    yyy   <=
2  26-03-2011   orange rrr

如果我应用 GROUP BYID。对于其他列,MySQL 输出每个 ID 的第一个找到的行。我在文档中的某个地方读到了这个。

SELECT * FROM `myVIEW`  
GROUP BY `ID`  
  ID date         tag1  other_data  
  1  25-03-2011   blue   fff   <=
  2  25-03-2011   red    yyy   <=

现在让我们添加一个 GROUP_CONCAT(tags1)

SELECT *,CONCAT_GROUP(`tag1`) AS `tags`  
FROM `myVIEW`  
GROUP BY `ID`

由于我应用了 CONCAT_GROUP,结果变得很奇怪。我期待着:

ID date         tag1   other_data   tags
1  25-03-2011   blue   fff          blue,red,pink
2  25-03-2011   red    yyy          red,orange

查询正在返回,例如:

ID date         tag1   other_data   tags
1  26-03-2011   red    ggg          blue,red,pink
2  25-03-2011   red    yyy          red,orange

看起来 GROUP_CONCAT 不再保留 VIEW 顺序。这是正常的吗?


好像GROUP_CONCAT不再保留 VIEW 顺序。这是正常的吗?

是的,这很正常。

您永远不应该依赖未分组和未聚合字段的返回顺序。

GROUP_CONCAT有它自己的ORDER BY优化器考虑并可以更改解析记录的顺序的子句。

返回第一条记录GROUP_CONCAT, 用这个:

SELECT  m.*, gc
FROM    (
        SELECT  id, MIN(date) AS mindate, GROUP_CONCAT(tags) AS gc
        FROM    myview
        GROUP BY
                id
        ) md
JOIN    m.*
ON      m.id = md.id
        AND m.date = md.mindate
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GROUP_CONCAT 更改 GROUP BY 顺序 的相关文章

  • Java 从 SQL 数组获取 ResultSet 失败

    我试图从数据库中检索电子邮件地址 但没有成功 我的代码如下 Main System out println PortfolioData getEmails 58 So Far Returning null 投资组合数据 public sta
  • 使用mysql在一个查询中选择多个表中的子项总数

    我整个下午都在尝试处理一个查询 或两个或三个 以获得三个表的所有子表的计数 看看我的设计 用户表 id user name 1 foo 2 bar 赢表 id won user 1 1 2 1 3 2 绘制表格 id draw user 1
  • MySQL SELECT 输出同一行中每个 id 的下一个日期

    我查询的表结构如下 ID Date Before value After value 1 2014 04 25 Win Loss 1 2014 04 30 Loss Win 1 2014 08 18 Win Loss 1 2014 08 2
  • SQL统计高于和低于平均分的学生人数

    我在下面有一个示例表 我试图获取高于平均分数的学生人数和低于平均分数的学生人数 name subject classroom classarm session first term score first term grade std1 m
  • SQL 检查一组日期是否在指定的日期范围内

    我有一个表 其中保存架构中房间不可用的日期 ROOM ID DATE UNAVAILABLE 我需要一个 sql 查询来检查两个日期范围内是否有可用房间 类似于 Select All rooms that are constantly av
  • MySQL 与 PHP 的连接无法正常工作

    这是我的情况 我正在尝试使用 Apache 服务器上的 PHP 文件连接到 MySQL 数据库 现在 当我从终端运行 PHP 时 我的 PHP 可以连接到 MySQL 数据库 使用 php f file php 但是当我从网页执行它时 它只
  • 将 UPDATE 转换为 INSERT INTO ON DUPLICATE KEY UPDATE 语句

    我有这个 UPDATE MySQL 语句 效果很好 UPDATE table1 Inner Join table2 ON table2 id table1 gw id SET table1 field1 1 table1 field2 2
  • 比较表中的行以了解字段之间的差异

    我有一个包含 20 多列的表 客户端 其中大部分是历史数据 就像是 id clientID field1 field2 etc updateDate 如果我的数据如下所示 10 12 A A 2009 03 01 11 12 A B 200
  • 无法启动 MySQL 服务器 - 控制进程退出并出现错误代码

    我的 mysql 服务器停止后无法启动 命令使用 sudo etc init d mysql restart Error 重新启动 mysql 通过 systemctl mysql serviceJob for mysql service
  • Python:如何使用生成器来避免 sql 内存问题

    我有以下方法来访问 mysql 数据库 并且查询在服务器中执行 我无权更改有关增加内存的任何内容 我对生成器很陌生 并开始阅读更多有关它的内容 并认为我可以将其转换为使用生成器 def getUNames self globalUserQu
  • 查询中列的顺序重要吗?

    当从 MySQL 表中选择列时 与表中的顺序相比 选择列的顺序是否会影响性能 不考虑可能覆盖列的索引 例如 您有一个包含行 uid name bday 的表 并且有以下查询 SELECT uid name bday FROM table M
  • MYSQL - 查找最近的前一天

    我可以以某种方式 不使用 PHP 找到一周中最近的前一天日期吗 Like 最近的上一个星期二的日期是哪一天 CURDATE INTERVAL WEEKDAY CURDATE wday IF WEEKDAY CURDATE gt wday 0
  • Hibernate 对集合的查询过滤器

    我想执行以下查询 from Item i where i categoryItems catalogId catId 然而 这会产生以下异常 非法尝试取消引用集合 所以我用谷歌搜索 找到了这个 Hibernate 论坛帖子https for
  • 阻止注销页面后的后退按钮

    我有 php 注销页面 当用户单击注销链接时 请参阅此页面并重定向到索引页面 但是当单击后退按钮时 我会看到带有用户数据的上一页 当然 当我刷新页面时 我看不到以前的页面和数据 我在单击注销并单击后退按钮后检查了其他代码 drupal 但我
  • MySQL 使用 ALTER IGNORE TABLE 出现重复错误

    我的 MySQL 中有一个有重复项的表 我尝试删除重复项并保留一项 我没有主键 我可以通过以下方式找到重复项 select user id server id count as NumDuplicates from user server
  • InnoDB 因读未提交而死锁! - Java - Glassfish - EJB3(JPA/Hibernate)

    几天来 我在使用 Glassfish EJB3 和 Mysql InnoDB 的 Java 应用程序上遇到了死锁问题 配置 Mysql InnoDB Ver 14 12 Distrib 5 0 51a 适用于 debian linux gn
  • MySQL PHP邮政编码比较具体距离

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

    我可以在外部硬盘上运行 Apache PHP 和 MySQL 吗 我需要这个 因为我在不同的地方工作 计算机 有时我没有安装和配置所有使用的应用程序 当然可以 XAMPP http www apachefriends org en xamp
  • 将古吉拉特语文本插入 MySQL 表会产生垃圾字符和不可读的文本

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

    我想计算上个月的订单总额 我收到了从当前日期获取当月数据的查询 SELECT SUM goods total AS Total Amount FROM orders WHERE order placed date gt date sub c

随机推荐

  • Typescript React - 找不到模块“react-materialize”的声明文件。 'path/to/module-name.js' 隐式具有任何类型

    我正在尝试从 React Materialize 导入组件 import Navbar NavItem from react materialize 但是当 webpack 编译我的 tsx它会抛出上述错误 ERROR in src com
  • 在 AWS AppSync 上创建关系的突变

    我一直在尝试运行突变来创建与两种不同类型的关系 但没有取得太大成功 架构 我已使用 创建资源 在 DynamoDB 中创建表 type Comment eventId ID commentId String content String t
  • fgets 并处理 CTRL+D 输入

    I am grabbing some standard input from the user and if the user presses CTRL D I want to display an error and terminate
  • MySQL在插入更新列之前触发新的自动增量ID

    我想用国家 地区代码和新的代码更新表中的列id这是一个自动递增值 BEGIN SET new key concat new countryCode new id END countryCode工作正常 但是id始终为空白 我怎样才能实现这样
  • if-let Any 到 RawRepresentable

    让我们假设一下 enum MyEnum String case value let possibleEnum Any MyEnum value if let str stringFromPossibleEnum possibleEnum p
  • 使用 boto3 和 python 将 AWS EC2 详细信息导出到 xlsx/csv

    我是 python 和 boto3 的新手 我需要使用 python 获取以下详细信息 我使用 bash 来获取这些详细信息 bin bash aws ec2 describe instances query Reservations In
  • 为什么从移动设备触发时我的触发状态为“已暂停”

    我使用 Google 表格中的数据验证实现了按钮单击解决方法功能 并且每当从移动设备执行触发器时 它都处于 暂停 状态 当执行此触发器时 我将显示对话框 当从浏览器执行时 该对话框工作得非常好 代码片段 function onSheetEd
  • Python3 PIL Pillow Ubuntu 安装

    我正在运行 Ubuntu 14 04 LTS 我安装了 Python 2 7 和 Python 3 4 在 Linux 中安装 Python 包方面我还算新手 我只是想安装并访问PIL sPython 3 4 中的图像库 据我了解 这是通过
  • DocumentDB 性能问题

    当在我的本地计算机上通过 C 代码运行 DocumentDB 查询时 一个简单的 DocumentDB 查询平均需要大约 0 5 秒 另一个例子 获取对文档集合的引用平均大约需要 0 7 秒 这是可以预料的吗 下面是我用于检查集合是否存在的
  • 如何使用 C++ 11 创建计时器事件?

    如何使用 C 11 创建计时器事件 我需要这样的东西 从现在起 1 秒后给我打电话 有图书馆吗 做了一个简单的实现 我相信这是你想要实现的目标 您可以使用该类later具有以下参数 int 等待运行代码的毫秒数 bool 如果为 true
  • Zend Framework 2 - 翻译路线

    我想知道是否可以在 zf2 中使用路由 uri 的翻译工具 我想要例如路线en domain tld article show 1例如翻译为de domain tld artikel anzeigen 1 我不认为正则表达式是这里的方法 因
  • Gradle tomcat 插件和属性文件

    我想使用 gradle tomcat 插件来与 gradle 进行集成测试 当前项目依赖于正在运行的 tomcat 的 catalina base 目录下的一些 properties 文件 无法更改 因为另一个依赖项目也依赖于它们 有人知道
  • 如果一个元素满足 dplyr 中的条件,则过滤所有组

    我有以下数据 df1 lt data frame id c 1 1 2 a c a b c gt df1 id a 1 1 a 2 1 b 3 2 c 如果组中至少一个元素满足给定条件 我想过滤 删除 在变量上定义的组的所有元素 此处 如果
  • 在Airflow中创建动态池

    我有一个 DAG 它创建一个集群 启动计算任务 并在完成后拆除该集群 我想将该集群上执行的计算任务的并发限制为固定数量 因此从逻辑上讲 我需要一个由任务创建的集群专用的池 我不希望干扰其他 DAG 或同一 DAG 的不同运行 我认为我可以通
  • 为 Angular 2 中的 mat-table 中实现的 mat-select 分配所需的值

    我在 Angular 2 中创建了一个简单的垫子表 有两列acc id and acc desc 我正在从我的帐户详细信息 json使用以下命令将文件放置在资产文件夹中accountdetails service ts 我已经在下拉菜单中选
  • 链接器脚本 .relocate 部分的第一个符号 _srelocate 不正确(GCC Bug?)

    Problem 我的问题是 当我使用以下脚本将代码放入 RAM 时 重定位部分会填充虚假数据 我的问题是 为什么是 srelocate符号比 4 个字节大 etext象征 它们不应该是一样的吗 另外 如果 1 的答案是否定的 我不应该复制
  • 改造2:无虚方法 newJsonReader(Ljava/io/Reader;) NoSuchMethodException

    我正在整个互联网上寻找这个错误 但是 只有一个 stackoverflow 条目没有答案或评论 我正在尝试使用Retrofit 2 这是我第一次使用它 这是我的依赖项 compile com squareup retrofit2 retro
  • 升级 Android Studio 后 Android Studio 构建错误

    升级到Android Studio后1 3 1昨天 在构建项目时出现此错误 我无法创建新项目 添加错误和 build gradle 文件如下 已经尝试改变compileSdkVersion and buildToolVersion to 2
  • 获取有关已安装网络适配器的信息

    我在 Windows XP sp3 上使用 Delphi XE2 Update 4 我希望从已安装的网络适配器中获取尽可能多的信息 特别是广播 IP 为此 我使用了 Jan Schulz 提供的代码从这篇文章 Unit Unit USock
  • GROUP_CONCAT 更改 GROUP BY 顺序

    我有一个视图 很多连接 输出按日期 ASC 排序的数据 按预期工作 输出类似于 ID date tag1 other data 1 25 03 2011 blue fff lt 1 26 03 2011 red ggg 1 27 03 20