distinct

SQL Server distinct子句

℡╲_俬逩灬. 提交于 2019-12-03 21:19:01
在SQL Server(Transact-SQL)中DISTINCT子句用于从结果集中删除重复记录。 DISTINCT子句只能和 SELECT语句 一起使用。 语法 在SQL Server(Transact-SQL)中DISTINCT子句的语法是: SELECT DISTINCT expressions FROM tables [WHERE conditions]; 参数及说明 expressions 要检索或计算的列 tables 希望从中检索记录的表。在FROM子句中必须至少有列出一个表; WHERE conditions 可选的。要选择的记录必须满足的条件 注意 当DISTINCT子句中只提供了一个表达式,查询将返回该表达式的唯一值; 当DISTINCT子句中提供了多个表达式,查询将检索列出的表达式唯一组合; 在SQL Server中,DISTINCT子句不忽略NULL值。因此在SQL语句中使用DISTINCT子句时,结果集将包括NULL并作为一个唯一的值; 示例 - 用单一表达式 让我们来看看一个最简单的SQL Server DISTINCT子句的例子。使用SQL Server DISTINCT子句返回一个字段,并去除结果集中的重复行记录。 例如: SELECT DISTINCT last_name FROM employees WHERE employee_id >=

SQL语句汇总(三)——聚合函数、分组、子查询及组合查询

隐身守侯 提交于 2019-12-03 21:10:02
SQL语句汇总(三)——聚合函数、分组、子查询及组合查询 拖了一个星期,终于开始写第三篇了。走起! 聚合函数: SQL中提供的聚合函数可以用来统计、求和、求最值等等。 分类: –COUNT:统计行数量 –SUM:获取单个列的合计值 –AVG:计算某个列的平均值 –MAX:计算列的最大值 –MIN:计算列的最小值 首先,创建数据表如下: 执行列、行计数(count): 标准格式 SELECT COUNT(<计数规范>) FROM <表名> 其中,计数规范包括: - * :计数所有选择的行,包括NULL值; - ALL 列名:计数指定列的所有非空值行,如果不写,默认为ALL; - DISTINCT 列名:计数指定列的唯一非空值行。 例,计算班里共有多少学生: SELECT COUNT(*) FROM t_student; 也可加入筛选条件,如求女学生数目: SELECT COUNT(*) FROM t_student WHERE student_sex='女'; 如果要计算班级数目,就需要用到DISTINCT: SELECT COUNT(DISTINCT student_class) FROM t_student; DISTINCT即去重,如果不加DISTINCT则结果为表行数——5。 返回列合计值(SUM): 注:sum只要ALL与DISTINCT两种计数规范,无*。

SQL-W3School:SQL DISTINCT 语句

亡梦爱人 提交于 2019-12-03 17:10:54
ylbtech-SQL-W3School:SQL DISTINCT 语句 1. 返回顶部 1、 本章讲解 SELECT DISTINCT 语句。 SQL SELECT DISTINCT 语句 在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。 关键词 DISTINCT 用于返回唯一不同的值。 语法: SELECT DISTINCT 列名称 FROM 表名称 使用 DISTINCT 关键词 如果要从 "Company" 列中选取所有的值,我们需要使用 SELECT 语句: SELECT Company FROM Orders "Orders"表: Company OrderNumber IBM 3532 W3School 2356 Apple 4698 W3School 6953 结果: Company IBM W3School Apple W3School 请注意,在结果集中,W3School 被列出了两次。 如需从 Company" 列中 仅选取唯一不同的值 ,我们需要使用 SELECT DISTINCT 语句: SELECT DISTINCT Company FROM Orders 结果: Company IBM W3School Apple 现在,在结果集中,"W3School" 仅被列出了一次。 2、 2. 返回顶部 3.

Oracle SQL - How to get distinct rows using RANK() or DENSE_RANK() or ROW_NUMBER() analytic function?

两盒软妹~` 提交于 2019-12-03 16:47:53
I am looking to get the top 3 distinct salaries of each department. I was able to do it either using RANK() or DENSE_RANK() or ROW_NUMBER() but my table is having some records with same salaries. Mentioned below is my query and its result. The top 3 salaries of Dept 20 should be 6000, 3000, 2975. But there are 2 employees with salary 3000 and both of them have rank 2. So it is giving me 4 records for this department (1 for rank 1, 2 records for rank2 and 1 record for rank3). Please suggest/advise about how can get the distinct top 3 salaries for each department. Query: SELECT * FROM ( SELECT

SQL Query to get common records

爷,独闯天下 提交于 2019-12-03 16:15:34
I have a table as below ID Username GroupID 1 venkat 2 2 venkat 3 3 ramu 1 4 ramu 2 Using the sql statement I want to retrieve all username's that are available in both the groupids 2,3 In this case only Venkat is the username that's available in both groupid 2 and 3 Kindly help me Try this: SELECT userName FROM tableA WHERE groupId IN (2, 3) GROUP BY userName HAVING COUNT(DISTINCT groupId) = 2; Check the SQL FIDDLE DEMO OUTPUT | USERNAME | |----------| | venkat | An alternate approach using a plain JOIN ; SELECT DISTINCT t1.username FROM MyTable t1 JOIN MyTable t2 ON t1.username = t2.username

Remove duplicate rows in a table having no primary key

喜欢而已 提交于 2019-12-03 15:49:55
I have a table item that contains items like name ------ alpha alpha beta charlie charlie In this case how would I delete duplicate rows but one record should remain. The above table does not have any primary key. Try this DELETE FROM item WHERE GREATEST(0,@num := IF(NAME = @NAME, @num + 1, 0),LEAST(0, LENGTH(@NAME := NAME)))>0 Recreate that table: RENAME TABLE `testTable` TO `testTable2`; CREATE TABLE `testTable` SELECT DISTINCT `name` FROM `testTable2`; OR Add UNIQUE INDEX on your field. ALTER IGNORE TABLE `tableName` ADD UNIQUE INDEX (`name`) 来源: https://stackoverflow.com/questions/14357888

SQL 查询 SELECT

℡╲_俬逩灬. 提交于 2019-12-03 15:46:44
SQL 查询是通过SELECT SQL 语句 来完成的。SELECT可以说是SQL中最常用的语句了。你可以把SQL语句看作是英语语句,SELECT就是SQL中的关键字之一,除了SELECT之外,还有INSERT、DELETE、UPDATE等关键字,这些关键字是SQL的保留字,这样可以很方便地帮助我们分析理解SQL语句。我们在定义数据库表名、字段名和变量名时,要尽量避免使用这些保留字。 SELECT的作用是从一个表或多个表中检索出想要的数据行。本文极客教程主要讲解SELECT的基础查询,后面极客教程会介绍如何通过多个表的连接操作进行复杂的查询。 SELECT查询的基础语法 SELECT可以帮助我们从一个表或多个表中进行数据查询。我们知道一个数据表是由列(字段名)和行(数据行)组成的,我们要返回满足条件的数据行,就需要在SELECT后面加上我们想要查询的列名,可以是一列,也可以是多个列。如果你不知道所有列名都有什么,也可以检索所有列。 创建了一个王者荣耀英雄数据表,这张表里一共有69个英雄,23个属性值(不包括英雄名name)。SQL文件见 Github地址 。 数据表中这24个字段(除了id以外),分别代表的含义见下图。 查询列 如果我们想要对数据表中的某一列进行检索,在SELECT后面加上这个列的字段名即可。比如我们想要检索数据表中都有哪些英雄。 SELECT name FROM

SQL Server DISTINCT pagination with ROW_NUMBER() not distinct

拜拜、爱过 提交于 2019-12-03 15:12:38
Ok, so basically my DISTINCT is rendered useless by using ROW_NUMBER() , I need to avoid this as it's causing duplicate results (apart from a unique num of course!) So what I'm looking for is a query that'll work the same but not have duplicate rows because num is unique: WITH t AS ( SELECT DISTINCT *, ROW_NUMBER() OVER (ORDER BY Date) AS num FROM Original_Import LEFT JOIN eqcas.dbo.BASE_PROXY_VIEW_WITHTARGET ON ADName = Targetuser WHERE (BaseProxy = 'agmc' OR ADName = 'agmc') AND (Commited IS NULL OR Commited = 0) ) SELECT DISTINCT ID, num, ADName, Description_User, Description_Amex, Amount,

Distinct count of multiple fields using mongodb aggregation

℡╲_俬逩灬. 提交于 2019-12-03 14:43:07
I'm trying to count distinct values of multiple fields By one MongoDB Aggregation query. So here's my data: { "car_type": "suv", "color": "red", "num_doors": 4 }, { "car_type": "hatchback", "color": "blue", "num_doors": 4 }, { "car_type": "wagon", "color": "red", "num_doors": 4 } I want a distinct count of each field: distinct_count_car_type=3 distinct_count_color=2 distinct_count_num_doors=1 I was able to group multiple fields and then do a distinct count but it could only give me a count on the first field. Not all of them. And also it's a large set of data. You're looking for the power of .