2012-07-30 94 views
0

需要執行查詢,以找到與第三列的值計數> 1。實施例rowns:MYSQL選擇其中計數> 1

表:

 col1 col2 col3 
------------------------ 
1. val1 val2 val3 
2. val11 val21 val3 
3. val12 val22 val31 
4. val13 val23 val32 
5. val14 val24 val32 

結果將被行1,2,4,5因爲我們值與計數COL3> 1

+0

您的查詢在哪裏? – diEcho 2012-07-30 13:08:42

回答

6

你提的問題是非常不清楚,這可能是你問:

SELECT COUNT(col3) as countCol3 
FROM table 
GROUP BY col3 
HAVING countCol3 > 1 
+1

爲什麼downvote? – Tchoupi 2012-07-30 13:14:31

+1

不是倒向選民,但OP似乎是要求行,而不是(只)計數。雖然這個查詢是獲得OP的答案的提示,但它並沒有提供完整的答案(至少我如何解釋這個問題,而且我可能是錯的^^) – jswolf19 2012-07-30 13:36:01

+0

@ jswolf19我明白了你的觀點。然而,正如你所想象的,我不願意給一個沒有提出詳盡問題的人提供完整詳細的答案。該問題沒有提供任何主鍵,也沒有提供任何可用於以體面方式檢索整行的內容。 – Tchoupi 2012-07-30 13:40:40

0

這是一個可以幫助你的答案。我已經包含了一些示例數據以幫助其他人找到一些示例數據有用的信息:

drop table if exists valTable; 

create table valTable 
(
id int unsigned primary key auto_increment not null, 
col1 varchar(50), 
col2 varchar(50), 
col3 varchar(50) 
); 

insert into valTable (col1,col2,col3) values ('val1','val2','val3'); 
insert into valTable (col1,col2,col3) values ('val11','val21','val3'); 
insert into valTable (col1,col2,col3) values ('val12','val22','val31'); 
insert into valTable (col1,col2,col3) values ('val13','val23','val32'); 
insert into valTable (col1,col2,col3) values ('val14','val24','val32'); 

select vt.* 
from valTable vt 
where vt.col3 in 
(select col3Multi from (
select col3 col3Multi,count(*) as c 
from valTable 
group by col3 
having c > 1) t);