hap*_*set 7 postgresql count limits
我正在尝试计算旧记录。LIMIT 1在这种情况下,即使我设置了一些限制,为什么 Postgres 仍会给出 1160 的结果?
SELECT COUNT(*) FROM data WHERE datetime < '2015-09-23 00:00:00' LIMIT 1;
Run Code Online (Sandbox Code Playgroud)
count
--------
1160
(1 row)
Run Code Online (Sandbox Code Playgroud)
我期望的结果是 1 或 0,但结果是 1160。为什么?
Phi*_*lᵀᴹ 15
您正在限制聚合函数的结果集count(),它将始终返回 1 行。IE:它限制了count(*)函数的输出,而LIMIT不仅仅是FROM data WHERE datetime < '2015-09-23 00:00:00'.
基本上:
FROM data WHERE datetime < '2015-09-23 00:00:00' count(*)是他们LIMIT就是这样
count我怀疑你想要它这样做:
SELECT COUNT(*) FROM (
SELECT * FROM data WHERE datetime < '2015-09-23 00:00:00' LIMIT 1
);
Run Code Online (Sandbox Code Playgroud)
由于这基本上是一项存在检查,因此还可以执行以下操作:
SELECT (EXISTS
(SELECT 1 FROM data WHERE datetime < '2015-09-23 00:00:00')
)::integer;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9601 次 |
| 最近记录: |