出什么问题了:
select count (a.*, b.*)
from tableA a, tableB b
where a.x = 'blah'
and b.x = 'blah'
Run Code Online (Sandbox Code Playgroud)
我不断收到错误:
消息 102,级别 15,状态 1,第 1
行“*”附近的语法不正确。
我有很多表名可供选择,所以想使用表名别名吗?任何帮助表示赞赏:我不太擅长 sql。
您不能在 中使用多个参数COUNT。在您的情况下,您要求a.col1, a.col2, a.col3... COUNT只提供 1 个参数的预期计数。唯一的例外是*在这种情况下,它知道应该计算表中的所有记录。
如果您想计算 a 中的所有记录,请执行类似的操作COUNT(a.id)。如果要计算表的唯一记录,请执行COUNT(distinct a.id)。
a如果你想计算和表中的所有记录b,那么你可以这样做COUNT(a.id) as quantityOfAtable, COUNT(b.id) as quantityOfBtable。或者你可以将它们相加COUNT(a.id) + COUNT(b.id)。
您还需要了解的另一件事COUNT是它仅计算NOT NULL行数。因此,如果您使用LEFT JOIN或 可以为 NULL 的列,那么它只会计算该列所在的记录数量NOT NULL。当然,您DISTINCT也可以用来计算唯一记录。
| 归档时间: |
|
| 查看次数: |
16045 次 |
| 最近记录: |