查询人员表,按职位分组,取组内id最大的记录:
1.
SELECT * FROM person p where not exists (SELECT * FROM person where post_id = p.post_id and id > p.id)
.
2.
select * from person where id in (SELECT max(id) FROM person group by post_id)
最简单的就是
SELECT max(id) FROM person group by post_id
再麻烦一点:
查询工具表中,所有分组中版本(version)最新的,并且是使用(state)中的工具:
1.
select * from tool t where state = 0 and not exists(select * from tool where state = 0 and name = t.name and version >t.version)
2.
select * from Tool where version in (SELECT max(version) FROM person where state = 0 group by name)
第二种方式严重不合理,当有相同版本时就不适用。建议使用第一种
有更好的方法的话希望可以分享。谢谢
分享到:
相关推荐
这个范例主要是实现SQL查询中的分组查询,可以查询在一定的空间范围内各个地物的数目,这个在实践中很用的较广,比如查询某一区域内A类建筑、B类建筑、C类建筑的数目,有利于后续的小区的建设等等,但是这个查询只能...
在SQL(结构化查询语言)中,连接查询和分组查询是两个非常重要的概念,用于处理和分析数据库中的数据。本章将详细讲解这两个概念及其应用。 首先,我们来看连接查询。连接查询允许我们将多个表的数据结合在一起,...
在VB(Visual Basic)编程中,对查询结果进行分组是一项常见的数据处理任务,它能够帮助我们更好地组织和分析数据。通常,这个过程涉及到数据库操作,例如SQL查询,以及使用VB提供的数据处理类库,如ADO.NET。在这个...
前言今天项目中需要根据分组查询最新记录的业务逻辑,想要使用 Eloquent 查询出来,做个记录。实现表内容原生 SQL 为:select * from (se
由于在第一步中没有直接获取每个分组的最新记录,所以需要进一步处理。这里采用了两次 `forEach` 循环。第一次遍历 `mt_resources_access_log20190122` 集合,获取每个分组的 `refererDomain`。然后,对于每个分组,...
在SQL中,分组查询是通过`GROUP BY`子句来实现的,它可以将数据按照一个或多个列的值进行分组,通常结合聚合函数一起使用,以便对每个分组执行计算。 1. SQL中的分组查询 在SQL中,使用`GROUP BY`语句进行分组操作...
这个查询将根据`Column1`和`Column2`的值对`TableName`表中的记录进行分组,并计算每组的记录数量。 在C#中,我们可以使用ADO.NET库直接执行SQL语句。以下是一个使用ADO.NET的例子: ```csharp using System.Data....
本资源包"SQL高级实例-模糊查询-分组随机查询-转换"聚焦于SQL的一些关键特性,旨在提升你在实际工作中的查询效率和数据处理能力。让我们逐一探讨这些主题。 首先,**模糊查询**是SQL中用于处理不精确或部分匹配搜索...
在IT领域,尤其是在数据库管理和软件开发中,连接查询和分组查询是两个至关重要的概念,尤其是在使用C#语言与SQL Server数据库进行交互时。这里,我们将深入探讨这两个主题,并结合提供的压缩包文件“Chapter11”来...
Oracle左连接返回多条记录中一条记录的查询语句,更具指定条件分组排序,返回各组中第一条记录
根据给定的SQL Server存储过程代码片段,我们可以深入解析与SQL Server中的`GROUP BY`分组查询、存储过程以及分页技术相关的知识点。 ### SQL Server中的`GROUP BY`分组查询 `GROUP BY`子句在SQL查询语言中用于将...
在数据库管理与维护过程中,查询和处理重复记录是一项非常重要的工作。本文将详细介绍几种常见的SQL查询重复记录的方法,并提供具体的示例代码。 #### 方法一:查询具有重复值的记录(返回所有重复记录) **SQL...
本文将详细探讨如何在Oracle中查询和删除重复记录,主要聚焦于单个字段和多个字段的情况。 1. **单个字段重复记录查询** 当我们需要根据单个字段(如`peopleId`)查找重复记录时,可以使用以下SQL语句: ```sql ...
### 数据库中的分组查询及数据筛选 在数据库管理中,分组查询和数据筛选是极为重要的操作之一,它们能够帮助我们从大量的数据中提取出有用的信息,并对这些信息进行有效的分析。本文将详细介绍如何利用SQL语言来...
- `WHERE (id IN (SELECT id FROM a AS a1 GROUP BY id HAVING (COUNT(1) >= 2)))`:这一行是在外部查询中添加一个条件,即只选择那些`id`出现在内部查询结果中的记录。 ### SQL查询重复数据的其他方法 除了上述...
在MySQL中实现分组并获取每组中的特定数量的最大记录是一项常见的需求,尤其是在处理大量数据时。例如,在上述示例中,我们希望基于`resid`进行分组,并且对于每个组,我们要找出前两条具有最高`pscore`和次高的`...
查询ORDERS表,按照订购日期从小到大排列表中记录,订购日期相同的记录按照总花费值从大到小排列 ```sql SELECT * FROM Orders ORDER BY oDate, SUM(mTotalCost) DESC; ``` 使用ORDER BY子句首先按订购日期排序,...
2. **聚合函数的应用**:在分组查询中,通常会结合使用聚合函数,如`COUNT`, `SUM`, `AVG`, `MAX`, `MIN`等,来计算每个分组的特定值。例如,计算每个组的数量: ```易语言 SQL执行("SELECT column1, COUNT(*) ...
在Oracle数据库中,查询数据是日常操作的一部分,而有时候我们需要获取特定的数据集,例如每组中的最大几个记录或者找出重复的记录。这篇博客主要探讨如何实现这两个目标。 首先,我们来讨论如何查询每组中最大的三...