[英]PostgreSql - SELECT Max repeated from another table
考慮我有兩個表tab1
和tab2
:
+-----------+-----------+
| ID_t1 | col2 |
+-----------+-----------+
| 1 | 1 |
+-----------+-----------+
| 2 | 1 |
+-----------+-----------+
和tab2 :
+-----------+-----------+
| ID_t2 | ID_t1 |
+-----------+-----------+
| 1 | 1 |
+-----------+-----------+
| 2 | 1 |
+-----------+-----------+
| 3 | 1 |
+-----------+-----------+
| 4 | 2 |
+-----------+-----------+
我嘗試在表 tab2 中找到具有tab1.col1 = 1
和最大行的對象,因此結果應該類似於對象 1
+-----------+-----------+
| ID_t1 | col2 |
+-----------+-----------+
| 1 | 1 |
+-----------+-----------+
我試試這個:
SELECT ID_t1 FROM tab1
WHERE tab1.col2 = 1 and
ID_t1 = (SELECT ID_t1 FROM tab2 WHERE -- MAX ONE REPEATED IN THIS TABLE)
我真的很想我如何競爭這個查詢,你能幫我嗎。
你在找這個嗎:
SELECT ID_t1
FROM tab1
WHERE tab1.col2 = 1 AND
ID_t1 = (SELECT ID_t1
FROM tab2
GROUP BY ID_t1
ORDER BY COUNT(*) DESC
LIMIT 1)
您可以在子查詢中使用LIMIT
:
select
from tabl1
where id_t1 in (
select id_t1
from tab2
group by id_t1
order by count(*) desc
limit 1
) and col2 = 1;
嘗試這個
select ID_t1, col2 from tab1
where ID_t1=1 and
col2=
(
select ID_t1 from tab2
group by ID_t1
order by count(*) DESC
limit 1
)
我找到了我的問題的答案:
SELECT
tab1 as id,
COUNT(*) as nombre
FROM
tab1, tab2
WHERE
tab2.ID_t1 = tab1.ID_t1 and
tab1.col2 = 1
GROUP BY tab2.ID_t1
ORDER BY nombre desc LIMIT 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.