当前位置: 首页 > 面试题库 >

SQLite中的SELECT *,COUNT(*)

刘翔宇
2023-03-14
问题内容

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

SELECT * FROM my_table

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

SELECT *, 1 FROM my_table

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

SELECT *, COUNT(*) FROM my_table

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


问题答案:

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

你想要类似的东西

SELECT somecolumn,someothercolumn, COUNT(*) 
   FROM my_table 
GROUP BY somecolumn,someothercolumn


 类似资料:
  • 主要内容:语法,实例,设置输出列的宽度,Schema 信息SQLite 的 SELECT 语句用于从 SQLite 数据库表中获取数据,以结果表的形式返回数据。这些结果表也被称为结果集。 语法 SQLite 的 SELECT 语句的基本语法如下: 在这里,column1, column2...是表的字段,他们的值即是您要获取的。如果您想获取所有可用的字段,那么可以使用下面的语法: 实例 假设 COMPANY 表有以下记录: 下面是一个实例,使用 SELE

  • 问题内容: 我从a取值并将其设置为内部条件 如 但这是行不通的。有什么建议? 问题答案: 尝试修剪字符串以确保没有多余的空格: 也可以使用@thinksteep之类的方法。

  • 问题内容: 我想写这样的SQLite语句: 但我没有这样的列RowNumber。我的桌子上有主键。但是默认情况下我可以使用行号吗? 我也在搜索有关编写更复杂的SQLite语句的信息。因此,如果您在书签中有一些链接,请分享。 谢谢。 问题答案: 您想使用LIMIT和OFFSET 也可以用以下速记语法表示 其中,代表偏移量,它是排他的,代表数量,因此,例如 将返回第51-100行

  • 问题内容: 我试图避免编写单独的SQL查询来实现以下情况: 我有一个称为值的表: 值: 我想检查表中是否存在某些数据,如果存在,则返回其ID,否则将其插入并返回其ID。 (非常)幼稚的方式是: 如果id不为null,请接受。如果id为null,则: 然后再次选择它以查看其ID或使用返回的ID。 我正在尝试使上述功能合而为一。我想我已经接近了,但我还没做到:到目前为止,我明白了这一点: 我正在尝试利

  • 问题内容: 我有一个结构的SQLite表“ Details”: 我想随机选择一行,然后从三个不同的行中选择三个名称(同样最好随机选择)。我希望所有这些都可以从一个SQLite语句返回。例如 我的尝试可以从下面看到,但是有两个问题: 这三个额外的名称不一定总是不同的-我似乎无法排除先前选择的名称,因为变量b / c / d不在其自身的COALESCE函数范围内。 由于每个嵌套选择都使用Random(

  • 问题内容: 我想创建一个SELECT查询,该查询将以格式将列中的数字作为一种格式返回-我可以在SQLite中这样做吗? 问题答案: SQLite支持CAST和: 将INTEGER或REAL值强制转换为TEXT会像通过sqlite3_snprintf()一样呈现该值,除了生成的TEXT使用数据库连接的编码。 因此,您可以执行以下操作: 或者,根据您要执行的操作,您可以将数字视为字符串,然后让SQLi