获取mysql结果并计算特定字段

时间:2010-02-13 04:35:34

标签: mysql count

我有这样的数据库结果

ID | NAME     | TYPE
--------------------
1  | baseball | 1
2  | kickball | 1
3  | football | 1
4  | soccer   | 2

如何选择*以获得所有结果,但结果中的总计数= 2?

任何帮助表示感谢。

2 个答案:

答案 0 :(得分:1)

通常我们设法通过两个不同的结果集来获得这个。但是,可以使用类似于以下

的查询将它们全部合并到一起
   SELECT ID, Name, Type
    FROM MyTable
    UNION
    SELECT -1, Type, COUNT(*)
    FROM MyTable
    WHERE Type = 2
    GROUP BY Type
    ORDER BY ID

假设所有正常ID都是> 0允许-1作为带计数的行的标记。由于ORDER BY,该行将在结果集中排在第一位。

请注意,我们可以通过简单地删除(或更改)第二个查询中的WHERE子句来使事情复杂化并获得所有类型(或多个类型)的计数。

答案 1 :(得分:1)

这将为您提供每行中当前行类型的类型计数:

select t1.*, t2.TypeCount
from Table1 t1
inner join (
    select TYPE, count(*) as TypeCount
    from Table1
    group by TYPE
) t2 on t1.TYPE = t2.TYPE