我正在尝试学习如何进行子查询,我真的很困惑这个简单的例子出了什么问题。
我的第一次尝试是
SELECT COUNT(SELECT * FROM my_table);
但这不起作用(我想是因为我需要一个临时表?)所以我试过这个:
SELECT COUNT(items)
FROM (SELECT * FROM my_table) AS items;
为什么我会得到以下内容:
1054:“字段列表”中的未知列“项目”
答案 0 :(得分:2)
您收到错误,因为在此示例中items
是一个表(因为它是别名),而不是列。最简单的解决方案是使用:
SELECT COUNT(*)
FROM (SELECT * FROM my_table) AS items
聚合函数(IE:COUNT,MIN,MAX,AVG等)仅适用于列引用,但有些函数接受[table]。*作为参数。