mysql 操作命令

news/2025/2/11 18:32:37/

1、查询两个表 id相同的行:

select * from mytable join mytable2 on mytable2.id = mytable.id;

2、计算 mytable 表中 与 mytable2 表 id 相同的行的出现次数,并定义列名为 aaa,同时查出 mytable 的name、age列信息。

select name,age,(select count(*) from mytable2 where mytable.id = mytable2.id) from mytable;

3、

SELECT * FROM your_table WHERE name IN ( SELECT name FROM your_table GROUP BY name HAVING COUNT(*) > 1 );

查询指定重复行的用户

select * from t_c1 where `学号`  in (select  学号 from  t_1 group by `学号`  having count(*)>1 );

+----+--------+-----------+--------+--------+--------+--------------+--------------+

| id | 学号   | 姓名      | 性别   | 籍贯   | 年龄   | 成绩级别     | 联系电话     |

+----+--------+-----------+--------+--------+--------+--------------+--------------+

|  1 |   1001 | 张小花    | 男     | 汉族   |     88 | A级          |    156783455 |

|  7 |   1001 | 张小花    | 男     | 汉族   |     44 | B级          |    165834685 |

+----+--------+-----------+--------+--------+--------+--------------+--------------+

4、

SELECT t_c1.`姓名`, COUNT(t_c1.`学号`) AS num

    -> FROM t_c1

    -> GROUP BY t_c1.`姓名`, t_c1.`学号`;

+-----------+-----+

| 姓名      | num |

+-----------+-----+

| 张小花    |   2 |

| 李明      |   1 |

| 吴迪      |   1 |

| 李星      |   1 |

| 小米      |   1 |

| 奥咪咪    |   1 |

+-----------+-----+

6 rows in set (0.01 sec)

select t_c1.`姓名`,count(t_c1.`学号`) as num from t_c1 group by t_c1.`学号` ;

ERROR 1055 (42000): Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'test.t_c1.姓名' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

非聚合列是指在一个 SQL 查询中,没有被包含在聚合函数(例如 COUNT、SUM、AVG 等)中的列。在使用 GROUP BY 子句进行分组查询时,非聚合列必须要么出现在 GROUP BY 子句中,要么通过聚合函数进行处理。

在您的查询中,t_c1.姓名 是一个非聚合列,因为它没有被包含在聚合函数中(COUNT)。根据 SQL 的标准规定,在启用了 ONLY_FULL_GROUP_BY 模式的情况下,非聚合列必须要么出现在 GROUP BY 子句中,要么被聚合函数处理。

为了修正这个问题,您可以将t_c1.姓名列添加到 GROUP BY 子句中,或者对其使用适当的聚合函数(比如 MAX())来处理。

要解决这个问题,您有两个选择:

  1. 将所有非聚合列都添加到GROUP BY子句中:

SELECT t_c1.`姓名`, COUNT(t_c1.`学号`) AS num FROM t_c1 GROUP BY t_c1.`姓名`, t_c1.`学号`;

  1. 使用聚合函数对非聚合列进行处理:

SELECT MAX(t_c1.`姓名`) AS 姓名, COUNT(t_c1.`学号`) AS num FROM t_c1 GROUP BY t_c1.`学号`;

4、查出 table1 中与 table2  相同的学号 中,每个学号出现的次数。

select max(t_c1.`姓名`) as `姓名`, count(t_c1.`学号`) as num from t_c1 join t_c2 on  t_c1.`学号`= t_c2.`学号`  group

by t_c1.`学号`;

select max(t_c1.`姓名`) as `姓名`, count(t_c1.`学号`) as num from t_c1 join t_c2 on  t_c1.`学号`= t_c2.`学号`  group

by t_c1.`学号`;

+-----------+-----+

| 姓名      | num |

+-----------+-----+

| 张小花    |   2 |

| 李明      |   1 |

| 吴迪      |   1 |

| 小米      |   1 |

| 奥咪咪    |   1 |

+-----------+-----+


http://www.ppmy.cn/news/1168114.html

相关文章

数据安全:.[bkpsvr@firemail.cc].EKING勒索病毒的特点和数据恢复方法

引言: 在数字世界中,网络安全问题备受关注,而勒索病毒已经成为网络威胁的一大劲敌。本文91数据恢复将带您深入了解那个声名狼藉的[bkpsvrfiremail.cc].EKING勒索病毒,探究其神秘特质、传播方式和挑战,让您了解如何防范…

huggingface 模型推理几个重要到类

pipeline 它可以让您方便地使用预训练的模型进行各种任务。当您用pipeline函数创建一个图像分割的pipeline时,它会自动加载和初始化一个SegformerForSemanticSegmentation的实例,并且封装了一些预处理和后处理的逻辑,例如将图像转换为张量&a…

RK3568笔记四:基于TensorFlow花卉图像分类部署

若该文为原创文章,转载请注明原文出处。 基于正点原子的ATK-DLRK3568部署测试。 花卉图像分类任务,使用使用 tf.keras.Sequential 模型,简单构建模型,然后转换成 RKNN 模型部署到ATK-DLRK3568板子上。 在 PC 使用 Windows 系统…

【C++ Primer Plus学习记录】复合类型总结

数组、结构和指针是C的3种复合类型。 数组可以在一个数据对象中存储多个同种类型的值。通过索引或者下标,可以访问数组中各个元素。 结构可以将多个不同类型的值存储在同一个数据对象中,可以使用成员运算符(.)来访问其中的成员。…

(1)攻防世界web-Training-WWW-Robots

1.开启环境,查看网页 翻译一下 2.前往robots.txt 命令:http://61.147.171.105:57663/robots.txt 3.前往fl0g.php 命令:http://61.147.171.105:57663/fl0g.php 4.得到flag cyberpeace{92ec1ef9b6d900100399093b9ae9e386}

Vue Router 刷新当前页面

Vue项目, 在实际工作中, 有些时候需要在 加载完某些数据之后对当前页面进行刷新, 以期 onMounted 等生命周期函数, 或者 数据重新加载. 总之是期望页面可以重新加载一次. 目前总结有三种途径可实现以上需求: 一, reload 直接刷新页面 window.location.reload(); $router.go(…

代码格式化的使用

前言 本文主要介绍了代码格式化,以及各个平台如何使用快捷键进行代码格式化,如有错误之处,欢迎在评论区交流讨论~ 代码格式化 代码格式化是一种编程实践,它涉及调整源代码的外观,以提高可读性和一致性。 这包括调整缩进、空格、换行符和括号等元素的使…

搭建哨兵架构(windows)

参考文章:Windows CMD常用命令大全(值得收藏)_cmd命令-CSDN博客 搭建哨兵架构:redis-server.exe sentinel.conf --sentinel 1.在主节点上创建哨兵配置 - 在Master对应redis.conf同目录下新建sentinel.conf文件,名字绝…