运行 MonetDB 数据库服务器工具包 v1.1 (Feb2013-SP6)
这个查询
select rowtype, min(zdate), max(zdate) , count(*)
from fdhista
group by rowtype
;
为每个行类型返回正确的最小和最大日期。
rowtype L1 L2 L3
3 1970-12-31 2009-07-31 1664186
1 2003-02-24 2013-09-13 11649306
这个查询,在同一张表上
select min(zdate), max(zdate), count(*) from fdhista where rowtype=3;
似乎“忽略” where 子句,返回
L1 L2 L3
1970-12-31 2013-09-13 13313492
我还没有找到该答案的一般 sql 先例(还)。这是预期的反应吗?
我期待这个
L1 L2 L3
1970-12-31 2009-07-31 1664186
我在 Oracle 和 SQL Server 中尝试了类似的查询并得到了我的预期响应。然而,我发现支持“忽略”where 子句的通用 sql 注释。也许这是 MonetDB 使用特定 SQL 标准的一个案例?