简体   繁体   English

如何使用分组数据进行SQL查询

[英]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 FiddleSQL 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM