0

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

例如。这是我的桌子

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

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

Name    count 
test1   2
test2   2

我怎样才能为这种结果编写sql。我不想要子查询。我想在没有子查询的情况下获取数据请帮助我。

谢谢

4

5 回答 5

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;

看到这个 SQLFiddle

于 2012-10-03T07:02:36.970 回答
2

或者是在CROSS JOIN这里使用

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

SQLFiddle 演示

于 2012-10-03T07:06:43.043 回答
1
select name,count(*) as count from tablename where typeid=1 group by name
于 2012-10-03T06:59:01.650 回答
0
SELECT name, count(*) AS count FROM <TABLE NAME> GROUP BY name;
于 2012-10-03T06:58:51.043 回答
0
SELECT t.*, count(\*) AS count FROM myTableName as t GROUP BY t.Name;
于 2012-10-03T09:10:09.403 回答