我想编写一个 mysql 查询来获取我所有的表数据和总记录数。
例如。这是我的桌子
ID Name typeId
1 test1 1
2 test2 1
3 test3 2
如果我要获取类型为 1 的数据,我需要这样的结果
Name count
test1 2
test2 2
我怎样才能为这种结果编写sql。我不想要子查询。我想在没有子查询的情况下获取数据请帮助我。
谢谢
查看您想要的结果,这是一个奇怪的要求,因为您想要所有计数(不是每个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;
或者是在CROSS JOIN
这里使用
SELECT name, c.totalCount
FROM Table1, (SELECT COUNT(*) totalCount FROM Table1) c
select name,count(*) as count from tablename where typeid=1 group by name
SELECT name, count(*) AS count FROM <TABLE NAME> GROUP BY name;
SELECT t.*, count(\*) AS count FROM myTableName as t GROUP BY t.Name;