3
我有这个疑问,从一张桌子和行数的查询会返回取行:查询选择COUNT(*)和列
SELECT tab.*,
(SELECT Count(*)
FROM mytable mtb
WHERE mtb.name = 'XYZ'
AND mtb.TYPE = 'TP')
FROM mytable tab
WHERE tab.name = 'XYZ'
AND tab.TYPE = 'TP'
现在,如果你看到了,我只是想主查询返回所有其他列的行数。我需要在非常大的查询中将此查询用作子查询。现在我想知道是否有更好的方法来写这个查询。我的意思是我们重复查询只是为了分开计数。所以,可以请你提供更优化的形式
是不是COUNT(*)OVER()一样普通COUNT(*)? – kyooryu 2013-05-08 13:20:15
@kyooryu:不,它不是。带有附加列的“普通”计数需要在这些列上有一个“GROUP BY”。 – 2013-05-08 13:22:04
实际上,经过一些测试后,我发现我真正需要的是'count(*)over(按名称分区,类型)'!非常感谢帮助我学习新的命令:) – MozenRath 2013-05-09 09:33:43