blog迁移至
:http://www.micmiu.com
select count (*)、count(1)、count(column)的区别如下:
-
count(1) 中的 1 并不是表示为第一个
column
-
count(*) 跟 count(1) 的结果一样,包括对NULL的统计
-
count(column) 是不包括对NULL的统计
-
如果表沒有主键(Primary key), 那么count(1)比count(*)快
-
如果表没有主键,只建了索引,那么count(*),count(1)是一样的,都是TABLE ACCESS FULL
,而count(索引)则是INDEX FULL SCAN
-
如果有主键的話,那count(主键)最快,那么count(*),count(1),以及count(主键)是一样的,都是INDEX FULL SCAN
-
如果你的表只有一个字段的话那count(*)就是最快的
亦可参考下官网上的有关问答:
本文连接:http://sjsky.iteye.com/blog/1209560
转载请注明来自:Michael's blog @ http://sjsky.iteye.com
----------------------------- 分 ------------------------------ 隔 ------------------------------ 线 ------------------------------
分享到:
相关推荐
本篇文章将详细解释COUNT(*)、COUNT(1)以及COUNT(column)这三种不同用法的区别。 1. COUNT(*) COUNT(*)是最常见的用法,它会计算表中所有非NULL的行。这意味着,即使列中有NULL值,COUNT(*)也会将其计入总数。在...
除了`COUNT()`,`SELECT 1`和`SELECT *`也是SQL中的常用操作。`SELECT 1`返回一个常量值1,对于每一行,结果都是1,通常用于`EXISTS`子句来检查是否存在满足条件的行。而`SELECT *`则返回所有列的所有数据,这在获取...
SELECT COUNT(*), COUNT(pid), COUNT(ISNULL(pid, '')) FROM tbl_user WHERE pid IS NOT NULL; ``` 结果是`(2, 2, 2)`,因为只有两行的`pid`不是`NULL`,且这两行中的`pid`被成功计数。 2. **只考虑`NULL`值的...
1. 计算不重复记录数量:`SELECT COUNT(DISTINCT id) FROM tablename;` 这个查询将返回 `tablename` 表中唯一 `id` 值的数量。 2. 返回不重复的字段值:`SELECT DISTINCT id FROM tablename;` 此查询将返回 `...
SELECT column1, COUNT(*) FROM table_name GROUP BY column1 HAVING COUNT(*) > 1; ``` 10. **ORDER BY子句** 使用`ORDER BY`对结果进行排序,可以指定升序`ASC`或降序`DESC`: ``` SELECT * FROM table_name...
- **语法**: `SELECT AVG(column_name) AS 'Median' FROM (SELECT column_name FROM table_name ORDER BY column_name LIMIT 2 - (SELECT COUNT(*) FROM table_name) % 2 OFFSET (SELECT (COUNT(*) - 1) / 2 FROM ...
- **语法**: `SELECT column1, column2 FROM table1 INTERSECT ALL SELECT column1, column2 FROM table2;` - **说明**: 返回同时存在于table1和table2中的所有记录,包括重复项。 - **示例**: `SELECT column1, ...
UNION Select TOP 1 COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS Where TABLE_NAME=logintable ``` - **利用联合查询(UNION SELECT)**:通过联合查询,可以在一次请求中获取多个查询结果,提高效率。 - **...
SELECT LOWER(column), UPPER(column), INITCAP(column), CONCAT(column1, column2), SUBSTR(column, start_position, length) FROM table_name; ``` - **示例**:获取员工姓名的首字母大写版本。 ```sql ...
- **语法**:`SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name HAVING COUNT(*) > 1;` - **示例**:`SELECT store_name, COUNT(*) FROM Store_Information GROUP BY store_name HAVING COUNT...
SELECT MAX(column_name) INTO :max_value FROM yk_cddz; ``` 通过上述步骤,应该可以解决在PowerBuilder通过JDBC连接MySQL时无法正常使用`COUNT(*)`和`MAX()`函数的问题。如果问题仍然存在,建议进一步排查MySQL...
- **HAVING**:在分组后筛选,`SELECT column1, COUNT(*) FROM table GROUP BY column1 HAVING COUNT(*) > N;` 6. **视图** - **CREATE VIEW**:创建虚拟表,方便重复查询,`CREATE VIEW view_name AS SELECT ...
然而,根据选择的不同,`COUNT(*)`、`COUNT(1)` 和 `COUNT(column_name)` 之间存在微妙的差异,这些差异在特定情况下可能会对查询性能产生影响。下面将详细分析这些不同选择的区别。 首先,`SELECT COUNT(*)` 是最...
SELECT column1, COUNT(*) FROM table_name GROUP BY column1 HAVING COUNT(*) > 1; ``` 这个查询会返回在`column1`中有多个不同值的行。 5. **聚合函数**:如COUNT(), SUM(), AVG()等,它们可以用来计算选定...
- **语法**:`SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name HAVING COUNT(*) > 1;` - **示例**:`SELECT store_name, COUNT(*) FROM Store_Information GROUP BY store_name HAVING COUNT...
SELECT column1, COUNT(*) FROM table_name GROUP BY column1 HAVING COUNT(*) > 10; ``` 6. **JOIN操作**:用于合并两个或多个表的数据。例如,INNER JOIN返回两个表中匹配的行: ```sql SELECT * FROM table1...
SELECT column1, column2, ... FROM table_name; ``` 这里,`column1, column2, ...`是你想要从表中选择的列名,`table_name`是你要查询的表的名称。 ### 二、选择所有列 如果你想要选择表中的所有列,可以使用...
- **语法**: `SELECT COUNT(column_name) FROM table_name;` - **示例**: 计算`Store_Information`表中有多少条记录。 - **命令**: `SELECT COUNT(*) FROM Store_Information;` **2. GROUP BY** - **功能**: 将...