使用以下條件從表中選擇 id
請在評論中找到示例資料
查詢以使用以下條件從表中選擇 Id。它應該滿足所有三個條件
如果年份是 2018 年且值大于或等于 2000
如果年份是 2019 并且值大于或等于 4000
如果年份是 2020 并且值大于或等于 6000
示例 id 1 和 2 有 3 年并且滿足限制條件
像 Id 1 2 這樣的輸出
Create table A(id int ,year int,value int);
Insert into A values(1, 2018, 2000);
Insert into A values(1, 2019, 4000);
Insert into A values(1, 2020, 6000);
Insert into A values(2, 2018, 3000);
Insert into A values(2, 2019, 4542);
Insert into A values(2, 2020, 8000);
Insert into A values(3, 2019, 3000);
Insert into A values(3, 2020, 7000);
Insert into A values(4, 2018, 1000);
Insert into A values(4, 2019, 4564);
Insert into A values(4, 2020, 7035);
uj5u.com熱心網友回復:
這是你想要的?(不幸的是,關于所需輸出的問題有點不清楚):
select year, GROUP_CONCAT(id) as `ids`
from A
where year=2018 and value>=2000
union all
select year, GROUP_CONCAT(id) as `ids`
from A
where year=2019 and value>=4000
union all
select year, GROUP_CONCAT(id) as `ids`
from A
where year=2020 and value>=6000;
輸出:
| 年 | 身份證 |
|---|---|
| 2018 | 1,2 |
| 2019 | 1,2,4 |
| 2020 | 1,2,3,4 |
DBFIDDLE
當需要一個空格,而不是一個,,你應該改變GROUP_CONCAT(),并添加SEPARATOR ' ',看到這個DBFIDDLE
uj5u.com熱心網友回復:
至于你目前的問題:
查詢以使用以下條件從表中選擇 Id。它應該滿足所有三個條件 如果年份是 2018 并且值大于或等于 2000 如果年份是 2019 并且值大于或等于 4000 如果年份是 2020 并且值大于或等于 6000
SELECT id FROM a
WHERE year = 2018 AND value >= 2000
OR year = 2019 AND value >= 4000
OR year = 2020 AND value >= 6000;
編輯:根據您的評論,您只需要 ID 1 和 2:
SELECT distinct id
FROM a
WHERE id in (SELECT id from a WHERE year = 2018 AND value >= 2000)
AND id in (SELECT id from a WHERE year = 2019 AND value >= 4000)
AND id in (SELECT id from a WHERE year = 2020 AND value >= 6000)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/421791.html
標籤:
上一篇:在postgres中加入值串列
