如何引用 SQL 中有计数的列?

How to reference a column in SQL that has count?

如何获取列“count(division)”而不是获取实际计数?

select * from num_taught;

给我这个

select count(division) from num_taught;

明白了,但我实际上想要上一张图片中的第三列“count(division)”

我想知道这个,因为我现在正在做这个:

    sql> select * from num_taught as a, num_taught as b
...> where a.count(division) = b.count(division);
Error: near "(": syntax error

但是如您所见,存在语法错误,我认为这是因为代码没有引用“count(division)”列,而是实际找到了计数。

我的最终目标是输出具有相同“分区”和相同计数(分区)的“标题”。

因此,例如,末尾 table 将包含“首席会计师”、“程序员实习生”、“书记员”、“技术员”、“向导”等行。因为这些行在 division 和 count(division)

中匹配

谢谢!

我想你只是想要一个 count(distinct):

select count(distinct division)
from num_taught;

DESC num_taughtreturn是什么意思?我很好奇第三列是如何填充的——是某种 pseudo-column 吗?您可能想尝试用 [] 包裹列名,请参阅:How to deal with SQL column names that look like SQL keywords?

即尝试:

select [count(division)] from num_taught;

您需要使用引号对您的列名进行转义(以防它是您在评论中提到的 Sqlite)。

select "count(division)" from num_taught;

或:

select * from num_taught as a, num_taught as b
 where a."count(division)" = b."count(division)";

如果您不这样做,那么您正在使用 Database-system 提供的 count-function。 像这样命名列是非常不寻常的,这可能是您的导师设置的陷阱,或者在您的情况下初始化 table 时出错。