如何使用mysql单一查询获取总计数数据

时间:2012-10-03 06:54:39

标签: mysql sql database

我想写一个mysql查询来获取我的所有表数据和总记录数。

例如。这是我的表

ID     Name    typeId
1      test1   1
2      test2   1
3      test3   2

如果我要获取类型为id 1的数据,我需要这样的结果

Name    count 
test1   2
test2   2

如何为这种结果编写sql。 我不想要子查询。我想用子查询获取数据 请帮帮我。

由于

5 个答案:

答案 0 :(得分:3)

<击>

<击>

查看您想要的结果,这是一个奇怪的要求,因为您希望所有计数(不是每个Name)。您可以使用子查询:

SELECT `Name`, (SELECT COUNT(*) FROM myTable) as `COUNT`
FROM myTable

或者,如果您想要计算每个Name,请尝试以下方法:

SELECT `Name`, COUNT(*) AS `COUNT` 
FROM myTable 
GROUP BY `Name`;

<击>

修改

当您更新了问题后,您的查询应如下所示:

SELECT `Name`,
(SELECT COUNT(*) FROM myTable WHERE TypeId = 1 GROUP BY TypeId) as `COUNT`
FROM myTable WHERE TypeId = 1;

See this SQLFiddle

答案 1 :(得分:2)

或者在这里使用CROSS JOIN

SELECT name, c.totalCount   
FROM Table1, (SELECT COUNT(*) totalCount FROM Table1) c

SQLFiddle Demo

答案 2 :(得分:1)

select name,count(*) as count from tablename where typeid=1 group by name

答案 3 :(得分:0)

SELECT name, count(*) AS count FROM <TABLE NAME> GROUP BY name;

答案 4 :(得分:0)

SELECT t.*, count(\*) AS count FROM myTableName as t GROUP BY t.Name;