相关疑难解决方法(0)

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

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

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

sql sql-server performance

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

在SQL Server中查找重复的行

我有一个组织的SQL Server数据库,并且有许多重复的行.我想运行一个select语句来获取所有这些和dupes的数量,但也返回与每个组织关联的id.

声明如下:

SELECT     orgName, COUNT(*) AS dupes  
FROM         organizations  
GROUP BY orgName  
HAVING      (COUNT(*) > 1)
Run Code Online (Sandbox Code Playgroud)

将返回类似的东西

orgName        | dupes  
ABC Corp       | 7  
Foo Federation | 5  
Widget Company | 2 
Run Code Online (Sandbox Code Playgroud)

但我也想抓住他们的身份证.有没有办法做到这一点?也许就像一个

orgName        | dupeCount | id  
ABC Corp       | 1         | 34  
ABC Corp       | 2         | 5  
...  
Widget Company | 1         | 10  
Widget Company | 2         | 2  
Run Code Online (Sandbox Code Playgroud)

原因是还有一个单独的用户表链接到这些组织,我想统一它们(因此删除欺骗,以便用户链接到同一组织而不是欺骗组织).但我想手动分配,所以我不会搞砸任何东西,但我仍然需要一个声明返回所有欺骗组织的ID,以便我可以浏览用户列表.

sql sql-server duplicates

217
推荐指数
7
解决办法
52万
查看次数

查找MySQL中列上具有相同值的行

在[member]表中,某些行具有相同的email列值.

login_id | email
---------|---------------------
john     | john123@hotmail.com
peter    | peter456@gmail.com
johnny   | john123@hotmail.com
...
Run Code Online (Sandbox Code Playgroud)

有些人使用不同的login_id但是使用相同的电子邮件地址,此列上没有设置唯一约束.现在我需要找到这些行,看看是否应该删除它们.

我应该使用什么SQL语句来查找这些行?(MySQL 5)

mysql sql database

190
推荐指数
5
解决办法
37万
查看次数

MySQL中的COUNT(id)与COUNT(*)

假设表中存在主要字段"id"(如速度等),以下查询之间是否存在差异?

SELECT COUNT(id) 
  FROM table
Run Code Online (Sandbox Code Playgroud)

SELECT COUNT(*) 
  FROM table
Run Code Online (Sandbox Code Playgroud)

mysql sql count

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

"SELECT COUNT(列)"比"SELECT COUNT(*)"更快/更慢吗?

我在MSSQL2008中运行这样的查询:

select count(*)
from t1
inner join t2 on t1.id = t2.t1_id
inner join t3 on t1.id = t3.t1_id 
Run Code Online (Sandbox Code Playgroud)

假设t1.id有一个NOT NULL约束.因为它们是内连接并且t1.id永远不能为null,所以使用count(t1.id)而不是count(*)应该产生完全相同的最终结果.我的问题是:性能是否相同?

我也想知道联接是否会影响这个.我意识到添加或删除连接会影响性能和结果集的长度.假设在不更改连接模式的情况下,您设置count为仅定位一个表.会有什么不同吗?换句话说,这两个查询之间是否存在差异:

select count(*)    from t1 inner join t2 on t1.id = t2.t1_id 
select count(t1.*) from t1 inner join t2 on t1.id = t2.t1_id 
Run Code Online (Sandbox Code Playgroud)

MySQL中的COUNT(id)与COUNT(*)为MySQL回答了这个问题,但是我找不到具体的MS-SQL答案,而且我找不到任何考虑join因素的东西.

注意:我试图在Google和SO上找到这些信息,但很难弄清楚如何说出我的搜索.

performance join count sql-server-2008

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

SQL Server的行数

如何计算或知道表没有扫描所有表的行数,可能使用ROW_NUMBER

sql-server-2008

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

计算查询行的最有效方法

我正在使用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万
查看次数

使用带有大表的WHERE EXISTS查询可扩展性

以下查询旨在查找去医院的人数,去医院的总人数以及将这两者划分为百分比.该表Claims是200多万行,并且具有正确的非聚集索引patientid, admissiondate, and dischargdate.查询运行得足够快,但我对如何使它更有用感兴趣.我希望能够在行中添加另一个代码,(hcpcs.hcpcs ='97001')percentRehabNotHomeHealth在另一列中进行更改.有没有可能没有写一个很大的胖连接语句,我将两个查询的结果连接在一起?我知道通过添加额外的列,数学看起来不正确,但我现在并不担心.所需的样本输出:http://imgur.com/BCLrd
数据库模式

在此输入图像描述

select  h.hospitalname
    ,count(*) as visitCounts
    ,hospitalcounts
    ,round(count(*)/cast(hospitalcounts as float) *100,2) as percentRehabNotHomeHealth
    from Patient p
    inner join statecounties as sc on sc.countycode = p.countycode
    and sc.statecode = p.statecode
    inner join hospitals as h on h.npi=p.hospitalnpi
    inner join
    --this join adds the hospitalCounts column
    (
        select h.hospitalname, count(*) as hospitalCounts
            from hospitals as h
            inner join patient as p on p.hospitalnpi=h.npi
            where p.statecode='21' and …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server-2008

5
推荐指数
1
解决办法
404
查看次数

计算多个条目/统计数据

我想在网站上添加一项调查.一项好的调查需要报告.一些基本报告已经完成.现在我想在咖啡上加点奶油......

包含样本数据的表格:

mysql> select * from u001;
+----+----------+------------+-------+---------------------+
| id | drink    | sex        | age   | date                |
+----+----------+------------+-------+---------------------+
|  1 | Beer     | m          | 30-39 | 2012-10-17 23:17:52 |
|  2 | Milk     | f          | 10-19 | 2012-10-18 00:15:59 |
|  3 | Milk     | f          | 20-29 | 2012-10-18 23:33:07 |
|  4 | Tea      | m          | 30-39 | 2012-10-20 22:47:08 |
|  5 | Water    | f          | 20-29 | 2012-10-20 22:47:30 | …
Run Code Online (Sandbox Code Playgroud)

mysql

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

COUNT的不同面孔

我想知道以下4个简单查询在结果和功能方面的区别:

  1. SELECT COUNT(*) FROM employees;

  2. SELECT COUNT(0) FROM employees;

  3. SELECT COUNT(1) FROM employees;

  4. SELECT COUNT(2) FROM employees;

sql count

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

在mysql中更快,count(*)或count(table_field_name)?

可能重复:
COUNT(*)与COUNT(1)对COUNT(pk):哪个更好?

我想从select查询中检索计数.

什么是更快:count(*)count(table_field_name)

我想知道哪种方式更快的性能.

mysql

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

查询计数数字记录包含文本

我试图根据表格中的文本计算数字记录

我有这样的表结构

SN_ID           NUMBER                      
PERSON_ID       NUMBER      
NOTICE_TYPE     VARCHAR2    
Run Code Online (Sandbox Code Playgroud)

和这样的表的内容

    SN_ID  PERSON_ID   NOTICE_TYPE
  -------+-----------+--------------
    1      5           Appreciation
    2      5           Warning
    3      1           Warning
    4      5           Incident
    5      2           Warning
    6      5           Warning
Run Code Online (Sandbox Code Playgroud)

我想计算一个人的感谢,警告和事故记录 Id = 5

sql oracle

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