mysql 通过GROUP BY 聚合并且拼接去重另个字段

我的需求:

我想知道同一个手机号出现几次,并且手机号出现在哪些地方。下面是要的效果。

源数据:

复制代码
CREATE TABLE `bank` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `user_id` int(11) NOT NULL DEFAULT '0',
  `tel` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `bank_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '银行卡名称',
  `bank_num` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '银行卡号',
  `is_show` int(11) NOT NULL DEFAULT '1' COMMENT '是否展示 1是 否',
  `creat_er` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '创建者',
  `created_at` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
  `updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`) USING BTREE,
  KEY `user_id` (`user_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='银行卡'

解决:通过 GROUP_CONCAT( ) 函数和 DISTINCT 去重函数

SELECT tel,count(user_id)as n, GROUP_CONCAT( bank_name) FROM bank GROUP BY tel ;

没去重的时候后面就直接拼接了

加上去重函数

复制代码
SELECT  tel,count(user_id)as n, GROUP_CONCAT(DISTINCT bank_name)
    FROM bank GROUP BY tel ;

效果:在聚合的时候拼接,并去重得到想要的效果

相关推荐
TimeFine2 分钟前
Android AI解放生产力(一):开始使用Codex Cli
android
SelectDB4 分钟前
Apache Doris AI 能力揭秘(四):HSAP 一体化混合搜索架构全解
数据库·人工智能·agent
四谎真好看25 分钟前
MySQL 学习笔记(进阶篇1)
笔记·学习·mysql·学习笔记
程序人生51826 分钟前
解决Dbeaver 连上 MySQL 数据库后不显示 information_schame、mysql 等数据库
数据库·mysql
与衫27 分钟前
SQLFlow × 高斯数据库:构建可治理、可追溯的数据底座
数据库·oracle
小小测试开发43 分钟前
SQL常用语法全解析:从入门到进阶的实战指南
数据库·sql
暗之星瞳1 小时前
mysql练习
数据库·mysql
月上林梢1 小时前
QT圆形加载进度条
数据库·c++·qt·进度条
3824278271 小时前
汇编:条件汇编、
前端·汇编·数据库
Java水解1 小时前
MySQL必备基础
后端·mysql