一尘不染

SQLite中的SELECT *,COUNT(*)

sql

如果我在SQLite中执行标准查询:

SELECT * FROM my_table

我按预期在表中获得了所有记录。如果我执行以下查询:

SELECT *, 1 FROM my_table

我得到了所有记录,所有记录中最右边的列都保持为“ 1”。但是,如果我执行查询:

SELECT *, COUNT(*) FROM my_table

我只有一行(最右边的列是正确的计数)。为什么会有这样的结果?我的SQL不太好,也许这种行为是预期的吗?对我来说,这似乎很奇怪而且不合逻辑:(。


阅读 231

收藏
2021-03-10

共1个答案

一尘不染

SELECT *, COUNT(*) FROM my_table 不是您想要的,并且它不是真正有效的SQL,您必须按非汇总的所有列进行分组。

你想要类似的东西

SELECT somecolumn,someothercolumn, COUNT(*) 
   FROM my_table 
GROUP BY somecolumn,someothercolumn
2021-03-10