Oracle SQL在其具有不同值时获取id
有了这个表,我如何使用select查找超过2个值超过100的ID?您可以执行以下操作Oracle SQL在其具有不同值时获取id,sql,oracle,Sql,Oracle,有了这个表,我如何使用select查找超过2个值超过100的ID?您可以执行以下操作 +----------+---------------------+-------+ | ID | date_value | value | +----------+---------------------+-------+ | 1 | 2011-04-20 21:03:05 | 150 | | 1 | 2011-04-20 21:03:04 |
+----------+---------------------+-------+
| ID | date_value | value |
+----------+---------------------+-------+
| 1 | 2011-04-20 21:03:05 | 150 |
| 1 | 2011-04-20 21:03:04 | 150 |
| 2 | 2011-04-20 21:03:03 | 20 |
| 2 | 2011-04-20 21:02:09 | 130 |
| 2 | 2011-04-20 21:02:08 | 130 |
| 3 | 2011-04-20 21:02:07 | 20 |
| ... | ... | ... |
+----------+---------------------+-------+
SELECT ID, count(*) from mytable
WHERE value > 100
GROUP BY ID
HAVING count(*) >2
您可以使用以下SQL语句:
select id,count(value)
from table1
where value > 100
having count(value) > 2
group by ID;
HAVING子句不一定要放在groupby之后吗?它可以放在alsoInteresting之前——这在Oracle中是有效的,但在Postgresql中会起作用。谢谢-我学到了一些东西@psaraj12 having子句不会像您所说的那样工作,因为mlinth saysHI@sudharsan,psaraj是正确的,它在Oracle中工作。看见
SELECT id, count(1)
FROM mytable
WHERE value > 100
GROUP BY id
HAVING count(1) > 2;