![](/img/trans.png)
[英]Is it possible to select only repeated values from a single column using eloquent?
[英]SQL: how to select only repeated values from same column?
!!! 有一種方法可以使用HAVING解決此問題,但是還有其他簡單的方法可以在不使用HAVING的情況下解決此問題嗎?
假設我有一個表t1,其中有兩個關系a和b。
-a b
-1 2
-2 1
-3 4
-4 9
-8 5
-5 2
-6 5
如何只打印B列中重復的案例(在這種情況下:2和5)?
如果您不希望使用HAVING
子句,則可以使用子查詢:
select t1.a, t1.b
from yourtable t1
inner join
(
select count(*) tot, b
from yourtable
group by b
) t2
on t1.b = t2.b
where t2.tot > 1
請參閱帶有演示的SQL Fiddle 。
子查詢將用於獲取每個b
值的計數。 然后,將結果聯接到表中,並過濾出計數大於1的所有記錄。
結果如下:
| A | B |
---------
| 1 | 2 |
| 8 | 5 |
| 5 | 2 |
| 6 | 5 |
除了已經很好的示例... HAVING的示例:
SELECT * FROM
(
SELECT col_a t1
FROM stack_test
) a,
(
SELECT col_b t2
FROM stack_test
GROUP BY col_b
HAVING Count(*) > 1
) b
WHERE t1 = t2
/
SQL>
T1 T2
-------
2 2
5 5
您可以使用聚合或聯接來執行此操作。 我更喜歡前者,但這是一種方法:
select *
from t
where exists (select 1 from t t2 where t2.b = t.b and t2.a <> t.a)
當然,這假定當b
值相同時, a
值不同。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.