我想写一个mysql查询来获取我的所有表数据和总记录数。
例如。这是我的表
ID Name typeId
1 test1 1
2 test2 1
3 test3 2
如果我要获取类型为id 1的数据,我需要这样的结果
Name count
test1 2
test2 2
如何为这种结果编写sql。 我不想要子查询。我想用子查询获取数据 请帮帮我。
由于
答案 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;
答案 1 :(得分:2)
或者在这里使用CROSS JOIN
SELECT name, c.totalCount
FROM Table1, (SELECT COUNT(*) totalCount FROM Table1) c
答案 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;