子查询的Sqlite Group By只返回一行

时间:2015-08-27 15:45:33

标签: sqlite

我们观察到,如果我们在子查询上应用group并且不使用聚合操作(如count或sum),则Sqlite总是只返回一行。

这是一个玩具示例:

给出表

CREATE TABLE ExampleTable (
 id INT PRIMARY KEY,
 rank INT NOT NULL
);

带数据

INSERT INTO ExampleTable(id, rank) VALUES (1, 1);
INSERT INTO ExampleTable(id, rank) VALUES (2, 2);
INSERT INTO ExampleTable(id, rank) VALUES (3, 2);

查询

SELECT rank, COUNT(*) FROM (select id, rank from ExampleTable) GROUP BY rank;

返回

rank|count
2|2
1|1

但是,如果没有COUNT操作,Sqlite只返回1行。

SELECT rank FROM (select id, rank from ExampleTable) GROUP BY rank;

=>

rank
1

这是错误还是预期的行为?

0 个答案:

没有答案