MySQL 分组依据和跳过对空值的分组

2023-12-31

select * from dc_deal group by collection_id

在 collection_id 列中我有值(1,3,3,4,4,5,空,空)。上面的查询将返回行(1,2,3,4,空)但我想跳过对 NULL 值的分组并需要像这样的结果(1,2,3,4,空,空)


如果表中有一个唯一的列(或一组列),那么我们可以向其中添加另一个表达式GROUP BY.

当以下情况时,表达式需要为每一行返回一个唯一的值:collection_id一片空白。否则,它返回一个常量。

假设我们有一个独特的id表中的列,那么我们可以这样做:

... GROUP BY collection_id, IF(collection_id IS NULL, id, 0)

中的第二个表达式GROUP BY返回一个常量值0 when collection_id不为空。但当 collection_id 为 null 时,它会为每行返回一个唯一值。

注意id这里只是对表中定义为唯一的列的引用。主键是一个很好的候选。如果我们在单个列上没有唯一索引,那么我们可以为唯一约束中的每一列或保证每行上唯一的任何表达式集重复相同类型的表达式。

... GROUP BY collection_id
           , IF(collection_id IS NULL, col1, '')
           , IF(collection_id IS NULL, col2, NULL)
           , IF(collection_id IS NULL, col3, collection_id)

或者,我们可以使用表达式生成唯一值:

... GROUP BY IFNULL(collection_id,UUID())
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL 分组依据和跳过对空值的分组 的相关文章

随机推荐

  • 单击正文,但其他一些标签不起作用

    有谁知道 css 位置 相对 可能会搞乱功能 body not theDIV click function alert 或者问题出在其他地方 发生的情况是 我有一个在单击按钮时出现的图标 并且当我单击主体上除 div 本身之外的任何位置时
  • 为什么我的 Gunicorn Python/Flask 工作人员会退出信号术语?

    我有一个 Python Flask Web 应用程序 我正在通过 Gunicorn 将其部署在 Amazon ECS 上的 Docker 映像中 一切都很顺利 然后突然间 包括最后一次成功的请求 我在日志中看到了这一点 2017 03 29
  • 如何将 ctx(上下文)传递给 CliRunner?

    CliRunner未列出任何参数来在其中提供上下文文档 http click pocoo org 5 api click testing CliRunner invoke 以下内容应作为最低限度的工作示例 真正的问题有点不同 可以通过将单击
  • 使用 EditText 显示密码

    我使用 EditText 输入密码 以及一个用于显示密码或不显示密码的复选框 下面是函数的一部分 public void ShowPassword if cb isChecked password setInputType InputTyp
  • tabBar didSelectItem 似乎不起作用

    在我的头文件中我有这个 interface TabBarController UIViewController
  • PHP 将 XML 转换为 JSON

    我正在尝试在 php 中将 xml 转换为 json 如果我使用简单的 xml 和 json encode 进行简单转换 则 xml 中不会显示任何属性 xml simplexml load file states xml echo jso
  • Angular.json 脚本未加载

    我正在尝试使用bootstrap导航栏的示例来自bootstrap文档 如果我从以下位置加载它angular json切换汉堡不起作用 如果我使用的是来自的 CDN 链接bootstrap docs
  • 要求文件作为字符串

    我正在使用 Node Express 我只是想知道如何将任何文件作为字符串导入 假设我有一个 txt 文件 我想要的只是将其加载到这样的变量中 var string require words txt 我反对 modules exports
  • Android 模拟器 - 创建用户帐户时遇到问题

    我的 Android 模拟器中需要一两个用户帐户 以便我可以测试应用程序的一些短信 邮件功能 问题是 当我尝试在模拟器中执行此操作时 设置 gt 帐户和同步 gt 添加帐户 gt my gmail account password gt 下
  • AngularJS Protractor - 如何测试 AJAX 登录调用?

    我有一个按钮 单击后会在 Angular 中发出 AJAX 调用 promise格式 登录成功后会出现 scope变量被更改并且元素如下所示 section Section to display if logged in section 被
  • 安装 Oracle Database Express Edition 11g 时出现问题

    我正在尝试使用 X ubuntu 13 04 64 位安装 Oracle 数据库本指南 http www techienote com 2012 11 step by step guide to install oracle databas
  • 使用 jdk 1.7 启动 Apache James

    我尝试在 Linux Mint 64 位 Debian 上使用 Java jdk 1 7u17 运行 apache james 3 0 beta4 服务器 但由于 JAXB 库错误而无法工作 根据文档 应下载不同的 jar 文件 http
  • 8086组装师

    我在下面的代码中遇到了这个问题 该代码将数字转换为 ASCII 数字文本 然而 代码似乎在 div 操作码处循环 Main Program main mov ax 0x0000 mov ds ax setup data segment re
  • 使用 JSONPath 进行 Redshift COPY 缺失的数组/字段

    我正在使用 COPY 命令将 JSON 数据集从 S3 加载到 Redshift 表 数据正在部分加载 但它会忽略缺少数据 键值 数组 的记录 即从下面的示例中仅加载第一条记录 Query 从 s3 mybucket address jso
  • 无符号整数的差异 - 获取签名结果的标准支持方法?

    假设两个任意时间戳 uint32 t timestamp1 uint32 t timestamp2 除了转换为更大的有符号类型和相当冗长的 if else 的明显变体之外 是否有标准的一致方法来获得两者的有符号差异 事先不知道哪一个更大 但
  • 研究squashfs压缩比

    是否有任何工具可以检查现有的 squashfs 映像并找出每个文件的压缩率 如果它可以帮助我估计一个巨大的可执行文件中静态链接符号的闪存使用情况 那就加分了 7zip 程序可以提供该信息 使用7z l slt squasfsfile您将获得
  • selenium切换到iframe来定位元素

    selenium import webdriver from selenium webdriver support import expected conditions as EC from selenium webdriver suppo
  • 如何通过 BFS 和 DFS 遍历构建树

    我有BFS and DFS树的遍历 如何从这些遍历中重建树 例如 BFS Traversal 4 3 5 1 2 8 7 6 DFS Traversal 4 3 1 7 2 6 5 8 那么树就会像下面这样 4 3 5 2 1 8 6 7
  • 创建 SOCK_RAW 套接字仅用于发送数据而不使用任何 recvform()

    如果我创建一个类型为 SOCK RAW 的套接字只是为了发送一些数据而不接收任何数据 那么当内核继续接收网络数据包并将其数据报复制到某个缓冲区 应用程序的 时 是否会出现任何问题 换句话说 somebuffer被填满后会发生什么 错误或忽略
  • MySQL 分组依据和跳过对空值的分组

    select from dc deal group by collection id 在 collection id 列中我有值 1 3 3 4 4 5 空 空 上面的查询将返回行 1 2 3 4 空 但我想跳过对 NULL 值的分组并需要