SQLite学习笔记五:Order By,Group By,Having,Distinct
SQLite Order By
SQLite的ORDER BY 子句是用来基于一个或多个列按升序或降序排列数据。 语法 ORDER BY 子句的基本语法如下: SELECT column-list FROM table_name [WHERE condition] [ORDER BY column1,column2,.. columnN] [ASC | DESC]; 实例 假设COMPANY表有以下记录: 将结果按SALARY升序排序: sqlite> SELECT * FROM COMPANY ORDER BY SALARY ASC; 产生以下结果:
将结果按NAME和SALARY降序排序: sqlite> SELECT * FROM COMPANY ORDER BY NAME,SALARY desc; 将产生以下结果:
SQLite 的 GROUP BY 子句用于与SELECT语句一起使用,用来对相同的数据进行分组。在SELECT语句中,GROUP BY 子句放在WHERE 子句之后,放在ORDER BY子句之前。 SELECT column-list FROM table_name WHERE [ conditions ] GROUP BY column1,column2....columnN ORDER BY column1,column2....columnN如果想了解每个客户的工资总额,则可以使用GROUP BY查询,如下所示: sqlite> SELECT NAME,SUM(SALARY) FROM COMPANY GROUP BY NAME;将产生如下结果:
现在,在COMPANY表中另外创建3个记录: INSERT INTO COMPANY VALUES (8,'Paul',24,'Houston',20000.00 ); INSERT INTO COMPANY VALUES (9,'James',44,'Norway',5000.00 ); INSERT INTO COMPANY VALUES (10,45,'Texas',5000.00 ); 用GROUP BY 语句来对所有记录按NAME 列进行分组,如下所示: sqlite> SELECT NAME,SUM(SALARY) FROM COMPANY GROUP BY NAME ORDER BY NAME; SQLite Having子句 下面是HAVING子句在SELECT查询中的位置: SELECT FROM WHERE GROUP BY HAVING ORDER BY在一个查询中,HAVING子句必须放在GROUP BY 子句之后,必须放在ORDER BY自居之前。下面是包含HAVING子句的SELECT语句的语法: SELECT column1,column2 FROM table1,table2 WHERE [ conditions ] GROUP BY column1,column2 HAVING [ conditions ] ORDER BY column1,column2 实例 假设COMPANY表有以下记录:
显示名称计数小于2的所有记录: sqlite > SELECT * FROM COMPANY GROUP BY name HAVING count(name) < 2; 显示名称计数大于2的所有记录: sqlite > SELECT * FROM COMPANY GROUP BY name HAVING count(name) > 2; SQLite Distinct 关键字 SELECT DISTINCT column1,.....columnN FROM table_name WHERE [condition] 假设COMPANY表有以下记录: 下面的SELECT查询,它将返回重复的工资记录: sqlite> SELECT name FROM COMPANY; 在上述的SELECT查询中使用DISTINCT关键字: sqlite> SELECT DISTINCT name FROM COMPANY; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |