相关疑难解决方法(0)

Count(*)vs Count(1) - SQL Server

只是想知道你们中的任何一个人是否Count(1)过度使用过Count(*),如果性能有显着差异,或者这只是从过去几天带来的遗留习惯?

(具体数据库是SQL Server 2005.)

sql sql-server performance

699
推荐指数
11
解决办法
36万
查看次数

在SQL中,count(列)和count(*)之间有什么区别?

我有以下查询:

select column_name, count(column_name)
from table
group by column_name
having count(column_name) > 1;
Run Code Online (Sandbox Code Playgroud)

会有什么区别,如果我更换了所有调用count(column_name)count(*)

这个问题的灵感来自于如何在Oracle中的表中找到重复值?.


为了澄清已接受的答案(也许是我的问题),替换count(column_name)count(*)将在结果中返回一个额外的行,其中包含a nullnull列中的值计数.

sql

199
推荐指数
5
解决办法
4万
查看次数

计算查询行的最有效方法

我正在使用Hibernate来检索特定查询的行数.假设我有一个名为'Person'的表,其中包含各种列.其中一列是'name'.

如果我想获得名为"安德鲁"的人数,哪种方式最有效?假设它们中的一些/全部存在性能差异.有没有更好的方法来使用Hibernate/SQL?

(1)选择所有列

Query query = session.createQuery("from Person where name= :name");
query.setParameter("name", name);
List result = query.list();
int count = result.size();
Run Code Online (Sandbox Code Playgroud)

(2)只选择名称列

Query query = session.createQuery("select name from Person where name= :name");
query.setParameter("name", name);
List result = query.list();
int count = result.size();
Run Code Online (Sandbox Code Playgroud)

(3)在查询中使用Count

Query query = session.createQuery("select count(*) from Person where name= :name");
query.setParameter("name", name);
long count = (Long) query.uniqueResult();
Run Code Online (Sandbox Code Playgroud)

(4)在查询中使用Count和name列

Query query = session.createQuery("select count(name) from Person where name= :name");
query.setParameter("name", name);
long count = (Long) query.uniqueResult();
Run Code Online (Sandbox Code Playgroud)

编辑:对不起,我的列表中有两个3号

java sql hibernate

8
推荐指数
1
解决办法
1万
查看次数

Count(*) vs Count(id) 速度

我知道它们返回不同的结果(第一个计算空值,后者不计算)。那不是我的问题。想象一下我不关心的情况(因为没有空值,或者因为只有少数,我只想了解数据库中的行数)。

我的问题是关于以下(可能的)矛盾:

这里 SQL 标签中最高代表用户之一说

您对COUNT(*)or 的使用COUNT(column)基于所需的输出。

另一方面,这里有 47 次点赞的评论说

...如果您有一个不可为空的列,例如 ID,那么 count(ID) 将比 count(*) 显着提高性能。

两者似乎相互矛盾。那么有人可以向我解释为什么正确的那个是正确的吗?

sql sql-server

7
推荐指数
2
解决办法
3756
查看次数

COUNT(*)和COUNT(table.ColumnName)之间有什么区别?

COUNT(*)和COUNT(table.ColumnName)之间有什么区别?

我一直认为将列名作为参数更快COUNT,但现在当我想到它时我真的不知道因为这*意味着函数计算行数,所以可能没有任何区别?或者可能给出一个特定的列名称甚至会减慢进程?

sql database

3
推荐指数
1
解决办法
2万
查看次数

SQL函数来计算字符串出现在列中的次数?

是否有一个MySQL函数可以计算字符串在另一个字符串或列中出现的次数?基本上我想要:

SELECT
    SUB_COUNT('my word', `my_column`) AS `match_count`
FROM `table`
Run Code Online (Sandbox Code Playgroud)

谢谢!

编辑: 我需要知道字符串出现在一列的每一行中的次数SELECT.

mysql sql search text function

2
推荐指数
1
解决办法
2万
查看次数

SQL Server计数(列)查询

在sql server中,count(列)也会计算空列吗?我在考试中遇到了这个问题而且我感到很困惑,但最后我给出的答案是,计数(列)也会计算空列.我只是想知道我是对还是错.有人对此有任何想法吗?

sql sql-server

-2
推荐指数
1
解决办法
165
查看次数

标签 统计

sql ×7

sql-server ×3

database ×1

function ×1

hibernate ×1

java ×1

mysql ×1

performance ×1

search ×1

text ×1