当前位置:K88软件开发文章中心编程语言SQLSQLite01 → 文章内容

SQLite Group By

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-12 5:44:07

SQLite Group BySQLite 的 GROUP BY 子句用于与 SELECT 语句一起使用,来对相同的数据进行分组。在 SELECT 语句中,GROUP BY 子句放在 WHERE 子句之后,放在 ORDER BY 子句之前。语法下面给出了 GROUP BY 子句的基本语法。GROUP BY 子句必须放在 WHERE 子句中的条件之后,必须放在 ORDER BY 子句之前。SELECT column-listFROM table_nameWHERE [ conditions ]GROUP BY column1, column2....columnNORDER BY column1, column2....columnN您可以在 GROUP BY 子句中使用多个列。确保您使用的分组列在列清单中。实例假设 COMPANY 表有以下记录:ID NAME AGE ADDRESS SALARY---------- ---------- ---------- ---------- ----------1 Paul 32 California 20000.02 Allen 25 Texas 15000.03 Teddy 23 Norway 20000.04 Mark 25 Rich-Mond 65000.05 David 27 Texas 85000.06 Kim 22 South-Hall 45000.07 James 24 Houston 10000.0如果您想了解每个客户的工资总额,则可使用 GROUP BY 查询,如下所示:sqlite> SELECT NAME, SUM(SALARY) FROM COMPANY GROUP BY NAME;这将产生以下结果:NAME SUM(SALARY)---------- -----------Allen 15000.0David 85000.0James 10000.0Kim 45000.0Mark 65000.0Paul 20000.0Teddy 20000.0现在,让我们使用下面的 INSERT 语句在 COMPANY 表中另外创建三个记录: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, 'James', 45, 'Texas', 5000.00 );现在,我们的表具有重复名称的记录,如下所示:ID NAME AGE ADDRESS SALARY---------- ---------- ---------- ---------- ----------1 Paul 32 California 20000.02 Allen 25 Texas 15000.03 Teddy 23 Norway 20000.04 Mark 25 Rich-Mond 65000.05 David 27 Texas 85000.06 Kim 22 South-Hall 45000.07 James 24 Houston 10000.08 Paul 24 Houston 20000.09 James 44 Norway 5000.010 James 45 Texas 5000.0让我们用同样的 GROUP BY 语句来对所有记录按 NAME 列进行分组,如下所示:sqlite> SELECT NAME, SUM(SALARY) FROM COMPANY GROUP BY NAME ORDER BY NAME;这将产生以下结果:NAME SUM(SALARY)---------- -----------Allen 15000David 85000James 20000Kim 45000Mark 65000Paul 40000Teddy 20000让我们把 ORDER BY 子句与 GROUP BY 子句一起使用,如下所示:sqlite> SELECT NAME, SUM(SALARY) FROM COMPANY GROUP BY NAME ORDER BY NAME DESC;这将产生以下结果:NAME SUM(SALARY)---------- -----------Teddy 20000Paul 40000Mark 65000Kim 45000James 20000David 85000Allen 15000

SQLite Group By