2013-07-31 21 views
0

我想統計一列中的項目只出現一次的次數。例如,如果在我的表我有...統計單個項目的行數

Name 
---------- 
Fred 
Barney 
Wilma 
Fred 
Betty 
Barney 
Fred 

...這將返回我計數2,因爲只有威爾瑪和貝蒂已經出現過一次。

+0

哪個RDBMS? MySQL的? SQL Server? –

回答

2

Here is SQLFiddel Demo

下面是查詢,你可以嘗試:

select count(*) from 
(select Name 
    from Table1 
group by Name 
having count(*) = 1) T 

直到我上面的帖子是您的實際情況後。


下面是職位修改問題:

在oracle中,你可以試試下面的查詢:

select sum(count(rownum)) 
    from Table1 
group by "Name" 
having count(*) = 1 

OR

Here is SQLFiddel Demo


在SQ l認證服務器,你可以試試下面的查詢:

SELECT COUNT(*) 
    FROM Table1 a 
    LEFT JOIN Table1 b 
    ON a.Name=b.Name 
    AND a.%%physloc%% <> b.%%physloc%% 
WHERE b.Name IS NULL 

OR

Here is the SQLFiddel Demo


在Sybase你可以試試下面的查詢:

select count(count(name)) 
    from table 
group by name 
having count(name) = 1 

根據@ user2617962的回答。

謝謝

+0

是的,現在我修改了 – Romesh

+0

我們需要能夠在沒有子查詢的情況下獲得o/p。 –

+1

你現在提到。 – Romesh

2
select count(*) from 
     (select count(*) from Table1 
     group by Name 
     having count(*) =1) s 

SqlFiddle

0

既然你只需要無柱的實際價值,一旦出現列值的計數,查詢應該是:

select count(count(name)) from table group by name having count(name) 
= 1 
+0

-1:不知道 – Romesh

+0

你得到的錯誤是什麼?查詢是直接轉發,我測試了相同的並粘貼在上面。 –

+0

[這是SQLFiddel演示](http://sqlfiddle.com/#!3/fd119/8) – Romesh

0

嘗試以下。

select name from (select name, count(name) as num from tblUsers group by name) 
tblTemp where tblTemp.num=1 

馬克它,如果這個工程.. :)