`
trarck
  • 浏览: 28709 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

选取不在group by 中的字段

阅读更多
分组的时候,要选参与分组外的字段,要使用分组函数。函数参数可以是分组外的字段。
mysq直接可以选取分组外的字段,但这在sql标准中行不同。
mysql文档提供了一个变通的方法 SUBSTR(MIN(CONCAT(RPAD(sort,6,' '),column)),7)
首先指定要排序字段sort的位数(根据需要可扩展),然后把要选取得的字段column添加到扩充后的字段后面。在使用min取得原sort最小的记录,在把column拆分出来。
例。
表test有三个字段:a,b,c。工是分组字段,c是排序字段,b是要取得的值 。
取得每个分组中,c最小的了的值
mysql:
SELECT a,SUBSTR(MIN(CONCAT(RPAD(c,6,' '),b)),7) AS b
FROM t
GROUP BY a
Access:
SELECT a, Mid(MIN(Mid(c+"      ",1,6)+b),7)
FROM t
GROUP BY a;
分享到:
评论

相关推荐

    sql_按照某一个字段进行去重后获取全部字段

    根据题目中提供的 SQL 语句,我们可以看到这是一个较为复杂的去重操作案例,它不仅仅使用了 GROUP BY 进行分组,还结合了 EXISTS 子查询来进一步过滤结果。 #### SQL 语句解析 ```sql SELECT * FROM person_real_...

    详解partition by和group by对比

    在SQL查询中,`GROUP BY` 和 `PARTITION BY` 都是用来处理数据分组的,但它们在功能和使用场景上有所不同。首先,`GROUP BY` 是一个基础的分组函数,它根据指定的列将数据进行分组,并且通常与聚合函数如 `SUM`, `...

    My SQL group by取同组第一条

    在MySQL中,`GROUP BY` 语句用于对数据进行分组,通常与聚合函数(如 COUNT(), SUM(), AVG() 等)一起使用,以便对每个分组进行计算。然而,有时候我们可能需要在每个分组中选取特定的一条记录,例如分组内最早或最...

    Access使用SQL语句联接表

    总结一下,SQL中的SELECT语句是数据检索的核心,配合其他子句如WHERE、GROUP BY、HAVING和ORDER BY,可以实现复杂的数据筛选、分组、聚合和排序。在Access中,熟练掌握SQL语句能显著提升你在数据库管理中的效率和...

    Python DataFrame.groupby()聚合函数,分组级运算

    pandas提供了一个灵活高效的groupby功能,它使你能以一种自然的方式对数据集进行切片、... 返回值:返回重构格式的DataFrame,特别注意,groupby里面的字段内的数据重构后都会变成索引  groupby(),一般和sum()、mean

    去掉重复记录select * from

    这条语句的作用是:首先,子查询`(select Max(comid) from company group by companyname)`会按照`companyname`对表`company`中的所有记录进行分组,并从每个分组中选取`comid`的最大值。外部查询则基于这个结果,找...

    distinct 多列问题结合group by的解决方法

    在这种情况下,你可能希望选择每组中的一个唯一`id`,这可以通过结合`GROUP BY`和子查询来完成: ```sql SELECT t1.id, t1.RegName, t1.PositionSN, t1.PersonSN FROM table1 t1 WHERE t1.id IN ( SELECT MIN(id) ...

    解决MySQL 5.7.9版本sql_mode=only_full_group_by问题

    因为`start_time`没有被聚合,且不在GROUP BY子句中,这在`ONLY_FULL_GROUP_BY`模式下是不允许的。MySQL不知道应该选取哪个`start_time`值来显示,所以会抛出错误。 解决这个问题的方法有以下几种: 1. **修改SQL...

    sql经典面试题 大家一起学习

    2. 第二题要求在A、B、C三列中选取最大值。可以使用`CASE`表达式来判断每个列的值,并返回最大值。例如: ```sql SELECT (CASE WHEN A > B THEN A ELSE B END), (CASE WHEN B > C THEN B ELSE C END) FROM #tmp...

    MySQL大表中重复字段的高效率查询方法

    在MySQL数据库管理中,处理大数据表的重复字段查询是一个常见的挑战。当表的数据量非常大时,传统的查询方法可能会导致性能下降,甚至无法在可接受的时间内完成。本篇文章将探讨如何高效地查询大表中的重复字段,并...

    SQL语法教材.pdf

    `SELECT [字段1, 字段2, … 字段n] FROM [表格1, 表格2, … 表格n] WHERE [条件] GROUP BY [字段1, 字段2, … 字段n] ORDER BY [字段1, 字段2, … 字段n]` - `字段`:指明要从表格中选取的列名,可以是原始字段或...

    select 语句详解

    这里,`字段列表`是你想从表中选取的列,`表名`是你想查询的数据表,`WHERE`用于设定查询条件,`GROUP BY`用于分组,`HAVING`用于分组后的过滤,`ORDER BY`用于结果排序,`LIMIT`则用于限制返回的记录数。...

    mysql SELECT语句去除某个字段的重复信息

    在MySQL数据库操作中,经常会遇到需要去除某个字段重复信息的情况。本文将详细介绍如何通过SQL查询来实现这一功能,并对具体语句进行解析,帮助读者理解其中的工作原理及应用场景。 #### 1. 去除字段重复信息的背景...

    2024最新数据库MySQL-DQL-HM

    基本查询是最简单的查询方式,仅从指定表中选取所有记录的所有字段。例如: ```sql SELECT * FROM tb_emp; ``` 这里`*`表示选择所有字段,`tb_emp`是表名。如果只想选取特定字段,可以列出具体字段名: ```sql ...

    mysql总结.docx

    GROUP BY语句用于将数据按一个或多个字段进行分组,HAVING则用于在分组后进行条件筛选。 分组查询结合了GROUP BY和聚合函数,用于对数据进行更复杂的分析。例如,`SELECT 分组函数, 分组后函数 FROM table WHERE ...

    ACCESS数据库考试试题和答案.pdf

    AVG函数用于计算平均值,GROUP BY语句用于根据一个或多个字段对结果进行分组,而SELECT...TOP语句则用于选取指定数量的记录。 10. **输入掩码**:输入掩码用于规定用户在字段中输入数据的格式,例如电话号码通常...

    《MYSQL实用教程》期末考试题.doc

    10. GROUP BY子句:在SELECT语句中,`GROUP BY`子句用于根据选择的列将数据行分组,以便进行聚合计算,如SUM、AVG、COUNT等。 11. 删除记录:在MySQL中,删除记录使用`DELETE`语句,例如`DELETE FROM 表名 WHERE ...

    数据库原理例题及解答.pdf

    4. IN运算符:IN运算符用于指定一个值列表,当某个字段的值在这个列表中时,记录才会被选取。例如,WHERE Prof.字段2 IN (SELECT Dept.字段1 FROM Dept WHERE Dept.字段2 )。 5. MIN函数:MIN函数用于找出某个字段...

    计算机二级数据库access操作题答案.pdf

    在摘录中的 "GROUPBY.ID,.,Count(.ID)AS" 部分,显然涉及到了SQL的统计功能。GROUP BY 子句用于结合聚合函数(如COUNT、SUM、AVG等),按照一个或多个列对结果集进行分组。COUNT函数用于计算记录数。AS 关键字用于给...

Global site tag (gtag.js) - Google Analytics