![](/img/trans.png)
[英]SQL query to only return the rows that have the highest value in a certain column
[英]sql query to return all rows with same column value
我有一個像
column_1 | column_2 | column_3
------------------------------
aaa | bbb | ccc
xys | hkj | fgh
dfs | jhv | ccc
cfg | rty | fgh
iyd | olp | ccc
gdv | tdr | www
我想得到這樣的結果,以便在column_3
中具有相同值的所有行與它們的column_3
值一起被打印出來
column_1 | column_3
--------------------
aaa | ccc
dfs | ccc
iyd | ccc
cfg | fgh
xys | fgh
gdv | www
我知道SELECT DISTINCT column_3 FROM table_name;
給了我column_3
所有唯一名稱,但是如何獲取所有依賴column_3
的column_1
值?
您是否可能對此考慮過度? 我相信你想要
SELECT column_1,
column_3
FROM table_name
ORDER BY column_3, column_1
Select ...
From table_name As T
Where Exists (
Select 1
From table_name As T2
Where T2.column_3 = T.column_3
And T2.<Primary Key Column> <> T.<Primary Key Column>
)
顯然,您將<Primary Key Column>
替換為唯一標識table_name
每一行的列。 如果column_1
是該列,那么我們將得到:
Select ...
From table_name As T
Where Exists (
Select 1
From table_name As T2
Where T2.column_3 = T.column_3
And T2.column_1 <> T.column_1
)
我還沒有在MYSQL中嘗試過此方法,但是在SQL Server中可以完成這項工作。
CREATE TABLE table_name (column_1 CHAR(3), column_2 CHAR(3), column_3 CHAR(3))
INSERT INTO table_name VALUES
('aaa','bbb','ccc')
,('xys','hkj','fgh')
,('dfs','jhv','ccc')
,('cfg','rty','fgh')
,('iyd','olp','ccc')
,('gdv','tdr','www')
SELECT column_1
, column_3
FROM table_name a
WHERE EXISTS(SELECT column_3
FROM table_name b
GROUP BY column_3
HAVING COUNT(column_3) > 0
AND b.column_3 = a.column_3)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.