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 ;

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

相关推荐
锋风1 小时前
远程服务器运行Android Studio开发aosp源码
android
测试工坊1 小时前
Android UI 卡顿量化——用数据回答"到底有多卡"
android
Hoffer_1 小时前
MySQL 强制索引:USE/FORCE INDEX 用法与避坑
后端·mysql
Hoffer_1 小时前
MySQL 索引核心操作:CREATE/DROP/SHOW
后端·mysql
随风飘的云17 小时前
MySQL的慢查询优化解决思路
数据库
IvorySQL21 小时前
PostgreSQL 技术日报 (3月7日)|生态更新与内核性能讨论
数据库·postgresql·开源
赵渝强老师21 小时前
【赵渝强老师】金仓数据库的数据文件
数据库·国产数据库·kingbase·金仓数据库
随逸1771 天前
《Milvus向量数据库从入门到实战,手把手搭建语义检索系统》
数据库
神秘的猪头1 天前
🚀 React 开发者进阶:RAG 核心——手把手带你玩转 Milvus 向量数据库
数据库·后端·llm
alexhilton1 天前
端侧RAG实战指南
android·kotlin·android jetpack