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 ;

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

相关推荐
低调小一2 分钟前
RecyclerView 缓存与复用机制:从一次滑动讲明白(2026 版)
android·recyclerview
mingdong06083 分钟前
MySQL 的mysql_secure_installation安全脚本执行过程介绍
数据库·mysql·安全
小小unicorn3 分钟前
[微服务即时通讯系统]3.服务端-环境搭建
数据库·c++·redis·微服务·云原生·架构
耶叶4 分钟前
kotlin的修饰符
android·开发语言·kotlin
admin and root5 分钟前
记一次攻防演练redis未授权访问案例
网络·数据库·redis·安全·web安全·渗透测试·src漏洞挖掘
l1t8 分钟前
在Android设备上利用Termux安装llama.cpp并启动webui
android·llama
倔强的石头10610 分钟前
KWDB 3.1.0 智慧能源实战:构建城市级智能电表监测平台
数据库·能源·kwdb
浩宇软件开发12 分钟前
基于Android天气预报应用开发APP
android·java·android studio·android开发
Mr.朱鹏14 分钟前
分布式-redis哨兵模式架构
数据库·redis·分布式·spring·缓存·架构·java-ee
毕设源码-郭学长15 分钟前
【开题答辩全过程】以 基于Android的电子日记APP的设计与实现为例,包含答辩的问题和答案
android