HQL 2个count(*) 查询问题

来源:百度知道 编辑:UC知道 时间:2024/05/18 07:31:10
select count(*) from (select count(*) from Member m,Group g where g.gid=m.gid group by m.mid) as temp
这样有错,该如何写

一楼正确。。AS是对字段别名。。
对表别名直接接别名就可以。。
select count(*) from (select count(*) from Member m,Group g where g.gid=m.gid group by m.mid) temp
但其实你这个别名没意义的。。
二楼你理解错了。人家二层count()当然有意思,第一层count你看清楚了group by分类统计。再统计分类的数量,,,
但觉的好像你这个SQL没必要这样子写
可以:select count(*) from (select distinct(m.mid) from Member m,Group g where g.gid=m.gid)
这样效率可能更高。。

as 是给查询的内容取别名
from后是一张表,给表取别名就不用as了 ,直接空格 别名就好了。
不知道你的as temp是给表去别名还是给 count(*) 取别名,所以改为:
select count(*) from (select count(*) from Member m,Group g where g.gid=m.gid group by m.mid) temp
或者
select count(*) as temp from (select count(*) from Member m,Group g where g.gid=m.gid group by m.mid)

这个查询有意义吗?内层的count(*)必定返回一条记录,所以外层的count(*)得到的结果必然是1