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 顺序 的相关文章

随机推荐

  • 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