Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >具有多个列的Mysql DISTINCT (删除重复项)

具有多个列的Mysql DISTINCT (删除重复项)
EN

Stack Overflow用户
提问于 2019-09-18 00:46:32
回答 2查看 40关注 0票数 0

我的数据库名为:(training_session)我尝试从我的数据中打印出一些信息,但我不想有任何重复。不知何故,我明白了,有人能告诉我我哪里做错了吗?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT DISTINCT athlete_id AND duration FROM training_session
SELECT DISTINCT athlete_id, duration FROM training_session

如果我只使用一列,但当我添加另一列时,它工作得很好。它不起作用。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-09-18 02:21:58

我想你误解了DISTINCT的用法。使用DISTINCT和GROUP BY之间有很大的区别。两者都有某种目标,但它们有不同的目的。

如果希望显示一系列列而不重复,则可以使用DISTINCT。这意味着你不关心计算或分组函数聚合。如果您不断在SELECT中添加更多列(如果表中有许多列),DISTINCT将显示不同的结果

如果您想在某个选定的列上“区分”显示,可以使用GROUP BY,并使用group函数来计算相关数据。因此,如果您想使用GROUP函数,则可以使用group BY。请检查您可以在此链接中使用的组函数。https://dev.mysql.com/doc/refman/8.0/en/group-by-functions.html

编辑1:看起来你正在尝试获取某个运动员的“最新”信息,如果没有ID,我将假设当前的情况。

以下是我的替代解决方案:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT a.athlete_id ,
(  SELECT b.duration
    FROM training_session as b
    WHERE b.athlete_id =   a.athlete_id -- connect
     ORDER BY [latest column to sort] DESC
    LIMIT 1 
 ) last_duration
FROM training_session as a
GROUP BY a.athlete_id
ORDER BY a.athlete_id

这种语法称为IN-SELECT子查询。在LIMIT 1的帮助下,它显示了最上面的记录。In-select子查询必须返回1条记录,否则将显示错误。

票数 1
EN

Stack Overflow用户

发布于 2019-09-18 02:19:18

MySQL的DISTINCT子句用于筛选出重复的记录集。

如果查询是SELECT DISTINCT athlete_id FROM training_session,则输出将为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
athlete_id
----------
1
2
3
4
5
6

一旦您向查询中添加了另一列(在您的示例中,名为duration的列),则查询产生的每条记录都是唯一的,因此您得到的结果也是唯一的。换句话说,查询工作正常。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57983612

复制
相关文章
sql distinct 去重复 (mysql)
首先观察表: 其中第二行和第三行和第八行的name1的只是重复的,但第八行的age1确是12,与第二行和第三行不同。 第五行和第六行是相同的重复数据。
1_bit
2021/01/14
3.4K0
sql   distinct 去重复 (mysql)
[Leetcode][python]删除排序数组中的重复项/删除排序数组中的重复项 II
数组完成排序后,我们可以放置两个指针 ii 和 jj,其中 ii 是慢指针,而 jj 是快指针。只要 nums[i] = nums[j]nums[i]=nums[j],我们就增加 jj 以跳过重复项。
蛮三刀酱
2019/03/26
6.5K0
MySQL使用distinct去掉查询结果重复的记录
使用 DISTINCT 关键字去掉重复记录具有较大的局限性。DISTINCT() 只能包含一个字段且查询结果也只返回该字段而非数据完整记录(如上例所示)。
用户7657330
2020/08/14
7.5K0
删除排序数组中的重复项
给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。
木瓜煲鸡脚
2020/09/23
5K0
<leetcode刷题-数组>删除排序数组中的重复项
给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。
哆哆jarvis
2022/08/23
4.4K0
删除排序数组中的重复项
给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。
_kyle
2020/11/03
4.5K0
VBA:根据指定列删除重复行
文章背景:在工作生活中,有时需要进行删除重复行的操作。比如样品测试时,难免存在复测数据,一般需要删除第一行数据,保留后一行的数据。
Exploring
2022/09/20
3.2K0
VBA:基于指定列删除重复行
文章背景:在工作生活中,有时需要进行删除重复行的操作。比如样品测试时,难免存在复测数据,一般需要保留最后测试的数据。之前通过拷贝行的方式保留最后一行的数据(参见文末的延伸阅读1),但运行效率较低。目前通过借助数组和字典达到删除重复行的效果。
Exploring
2022/12/18
3.4K0
VBA:基于指定列删除重复行
删除有序数组中的重复项
要求删除重复元素,实际上就是将不重复的元素移到数组的左侧,即慢指针p的右边都是不重复的元素,p—q之间是出现重复的元素。
大忽悠爱学习
2021/03/27
4.7K0
删除有序数组中的重复项
给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。
狼啸风云
2023/10/07
2070
PQ-折腾个啥咧?除了“删除重复项”,还有“保留重复项”!
小勤:Excel里删除重复项很简单,但要保留重复项怎么做?比如下面这个数据,保留其中有重复的项目:
大海Power
2021/08/30
1.3K0
删除有序数组中的重复项 II
给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使得出现次数超过两次的元素只出现两次 ,返回删除后数组的新长度。
狼啸风云
2023/10/07
1940
LeetCode | 删除有序数组中的重复项
题目 删除有序数组中的重复项 给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。 由于在某些语言中不能改变数组的长度,所以必须将结果放在数组nums的第一部分。更规范地说,如果在删除重复项之后有 k 个元素,那么 nums 的前 k 个元素应该保存最终结果。 将最终结果插入 nums 的前 k 个位置后返回 k 。 不要使用额外的空间,你必须在 原地修改输入数组 并在使用 O(1) 额外空间的条件下完成。 判题标准: 系统会用下面的代码来测试你的题解:
yiyun
2023/03/08
3.9K0
LeetCode | 删除有序数组中的重复项
[leetcode数组系列]3 删除排序数组中的重复项
1 leetcode原文链接 https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/ 示例1
我是程序员小贱
2020/06/05
4.2K0
SAS删除字符串中的重复项
SAS程序猿/媛有时候会碰到去除字符串中重复值的问题,用常用的字符函数如SCAN,SUBSTR可能会很费劲,用正则表达式来处理就简单了。示例程序如下:
专业余码农
2020/07/15
5.2K0
LeetCode - 删除排序数组中的重复项
LeetCode第26题,难度简单。这题题目也是相当的长,所以只取了题目的主干,示例和说明请点击下方链接查看详情。
晓痴
2019/08/22
4K0
LeetCode - 删除排序数组中的重复项
[LEETCODE]从排序数组中删除重复项
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。
用户2353021
2020/05/11
6.3K0
Jquery如何删除table里面checkbox选中的多个行与多个列
(adsbygoogle = window.adsbygoogle || []).push({});
tianyawhl
2019/04/04
4.2K0
Mysql删除重复数据
[Err] 1093 - You can't specify target table 'dept' for update in FROM clause 原因:更新这个表的同时又查询了这个表,查询这个表的同时又去更新了这个表,可以理解为死锁。mysql不支持这种更新查询同一张表的操作。所以我们用生成临时表去操作,上面的语句就是这么写的。复制即可。
华创信息技术
2020/03/09
17.6K1
MySQL | 查找删除重复行
本文讲述如何查找数据库里重复的行。这是初学者十分普遍遇到的问题。方法也很简单。这个问题还可以有其他演变,例如,如何查找“两字段重复的行”(#mysql IRC 频道问到的问题)
逍遥子大表哥
2021/12/17
5.8K0
MySQL | 查找删除重复行

相似问题

如何从多个列的SELECT DISTINCT中删除重复项?

03

MYSQL从具有两列的表中删除重复项

49

具有不同参数的MySQL多个联合删除重复项

11

MySQL选择DISTINCT以包含重复项

40

MySQL SELECT DISTINCT正在输出重复项

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文