[英]How to make sql query using group by data
I have a table which look like below: 我有一个表格,如下所示:
id name
---|------|------------|
| 1 | IP2.0-v1.0 |
| 2 | IP2.0-v2.0 |
| 3 | IP1.0-v1.0 |
| 4 | IP1.1-v1.0 |
I would like to have group by result such as below: 我想按如下结果分组:
name count
---|----------|------------|
| IP2.0 | 2 |
| IP1.0 | 1 |
| IP1.1 | 1 |
How can I manage to get SQL query using group by? 如何管理使用分组依据的SQL查询?
Select name,count(*) from table_a GROUP BY ...........
从table_a GROUP BY ...........中选择名称,count(*)
You want a subquery to do the substring before the group by 您希望子查询在分组依据之前执行子字符串
select nameSub, count(*) from
(select id, substring(name,1,5) as nameSub from table)
group by nameSub
SELECT SUBSTRING (NAME,1,5), COUNT(*) FROM table_a GROUP BY SUBSTRING (NAME,1,5)
MySQL Fiddle and SQL Server Fiddle : MySQL Fiddle和SQL Server Fiddle :
SELECT LEFT(name, 5), count(*)
FROM MyTable
GROUP BY LEFT(name, 5)
Try this: 尝试这个:
SELECT SUBSTRING(Name,1,CHARINDEX('-',Name)-1) AS Name, COUNT(*) AS Count
FROM table_a
GROUP BY SUBSTRING(Name,1,CHARINDEX('-',Name)-1)
SUBSTRING
is useful if the length of Name
vary 如果
Name
的长度不同, SUBSTRING
很有用
Try with SUBSTRING( str FROM pos FOR len )
尝试使用
SUBSTRING( str FROM pos FOR len )
SELECT
SUBSTRING(`name` from 1 for 5) as name_res,
COUNT(*)
FROM @TABLE
GROUP BY name_res;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.