ORDER BY查询 复制代码 代码如下: SELECT college, region, seed FROM tournament ORDER BY region, seed; SELECT college, region AS r, seed AS s FROM tournament ORDER BY r, s; SELECT college, region, seed FROM tournament ORDER BY 2, 3; --要以相反的顺序进行分类,应把DESC(降序)关键字添加到ORDER BY子句中的列名称中。默认值为升序;该值可以使用ASC关键词明确地指定。 SELECT a, COUNT(b) FROM test_table ORDER BY a DESC;
GROUP BY查询 复制代码 代码如下: SELECT a, COUNT(b) FROM test_table GROUP BY a DESC; SELECT COUNT(col1) AS col2 FROM t GROUP BY col2 HAVING col2 = 2; -- HAVING不能用于应被用于WHERE子句的条目,不能编写如下语句: SELECT col_name FROM tbl_name HAVING col_name > 0; --而应该这么编写 SELECT col_name FROM tbl_name WHERE col_name > 0; --HAVING子句可以引用总计函数,而WHERE子句不能引用: SELECT user, MAX(salary) FROM users GROUP BY user HAVING MAX(salary)>10;
UNION UNION用于把来自许多SELECT语句的结果组合到一个结果集合中,语法如下: 复制代码 代码如下: SELECT ... UNION [ALL | DISTINCT] SELECT ... [UNION [ALL | DISTINCT] SELECT ...]
列于每个SELECT语句的对应位置的被选择的列应具有相同的类型。(例如,被第一个语句选择的第一列应和被其它语句选择的第一列具有相同的类型。)在第一个SELECT语句中被使用的列名称也被用于结果的列名称。 如果您对UNION不使用关键词ALL,则所有返回的行都是唯一的,如同您已经对整个结果集合使用了DISTINCT。如果您指定了ALL,您会从所有用过的SELECT语句中得到所有匹配的行。 您可以在同一查询中混合UNION ALL和UNION DISTINCT。被混合的UNION类型按照这样的方式对待,即DISTICT共用体覆盖位于其左边的所有ALL共用体。DISTINCT共用体可以使用UNION DISTINCT明确地生成,或使用UNION(后面不加DISTINCT或ALL关键词)隐含地生成。 简单例子: 复制代码 代码如下: (SELECT a FROM tbl_name WHERE a=10 AND B=1) UNION (SELECT a FROM tbl_name WHERE a=11 AND B=2) ORDER BY a LIMIT 10;
ALL, DISTINCT和DISTINCTROW ALL, DISTINCT和DISTINCTROW选项指定是否重复行应被返回。如果这些选项没有被给定,则默认值为ALL(所有的匹配行被返回)。DISTINCT和DISTINCTROW是同义词,用于指定结果集合中的重复行应被删除。 复制代码 代码如下: SELECT DISTINCT a FROM table_name; SELECT COUNT(DISTINCT a) FROM table_name;