SQLite返回单行,即使我没有使用GROUPBY
我有以下SQLite数据库 如果我进行以下查询,我预计将返回3行结果SQLite返回单行,即使我没有使用GROUPBY,sqlite,Sqlite,我有以下SQLite数据库 如果我进行以下查询,我预计将返回3行结果 SELECT name, sum(heart) FROM test_table; 但是,即使我没有使用分组依据,也只返回了一行 C:\Users\yan-cheng.cheok\Desktop>sqlite3.exe SQLite version 3.7.13 2012-06-11 02:05:22 Enter ".help" for instructions Enter SQL statements termina
SELECT name, sum(heart) FROM test_table;
但是,即使我没有使用分组依据,也只返回了一行
C:\Users\yan-cheng.cheok\Desktop>sqlite3.exe
SQLite version 3.7.13 2012-06-11 02:05:22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .restore abc
sqlite> SELECT name, sum(heart) FROM test_table;
Record3|102
我期待的结果是:
Record1|102
Record2|102
Record3|102
与convientionalsql一样,如果我不使用groupby
,将返回每一行
C:\Users\yan-cheng.cheok\Desktop>sqlite3.exe
SQLite version 3.7.13 2012-06-11 02:05:22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .restore abc
sqlite> SELECT name, sum(heart) FROM test_table;
Record3|102
有什么可以让所有3行都返回的吗?此行为是:
如果SELECT语句是没有GROUP BY子句的聚合查询,则在整个数据集中对结果集中的每个聚合表达式求值一次。对于数据集的任意选定行,结果集中的每个非聚合表达式都计算一次。每个非聚合表达式使用相同的任意选定行。或者,如果数据集包含零行,则针对完全由空值组成的行计算每个非聚合表达式
您可以这样做:
sqlite> select a.name, b.s from abc as a, (select sum(heart) as s from abc) as b;
Record1|102
Record2|102
Record3|102
试试这个你可以使用交叉连接
SELECT a.name, b.totalHeart
FROM test_table a,
(
SELECT SUM(heart) totalHeart
FROM test_table
) b
我不认为有“方便SQL”这样的东西。