如何使用group by data进行sql查询

时间:2014-06-27 03:33:31

标签: mysql sql sql-server

我的表格如下所示:

     id        name     
---|------|------------|
   |   1  | IP2.0-v1.0 |
   |   2  | IP2.0-v2.0 |
   |   3  | IP1.0-v1.0 |
   |   4  | IP1.1-v1.0 |

我想按结果分组如下:

     name        count     
---|----------|------------|
   |   IP2.0  |     2      |
   |   IP1.0  |     1      |
   |   IP1.1  |     1      |

如何使用group by?

设法获取SQL查询
  

从table_a GROUP BY ...........

中选择名称,计数(*)

5 个答案:

答案 0 :(得分:1)

您希望子查询在

组之前执行子字符串
select nameSub, count(*) from
(select id, substring(name,1,5) as nameSub from table)
group by nameSub

答案 1 :(得分:1)

SELECT SUBSTRING (NAME,1,5), COUNT(*) FROM table_a GROUP BY SUBSTRING (NAME,1,5)

答案 2 :(得分:1)

MySQL FiddleSQL Server Fiddle

SELECT LEFT(name, 5), count(*) 
FROM MyTable
GROUP BY LEFT(name, 5)

答案 3 :(得分:1)

试试这个:

SELECT   SUBSTRING(Name,1,CHARINDEX('-',Name)-1) AS Name, COUNT(*) AS Count
FROM     table_a
GROUP BY SUBSTRING(Name,1,CHARINDEX('-',Name)-1)
如果SUBSTRING的长度变化

,则

Name非常有用

答案 4 :(得分:1)

尝试使用SUBSTRING( str FROM pos FOR len )

SELECT 
    SUBSTRING(`name` from 1 for 5) as name_res, 
    COUNT(*) 
FROM @TABLE
GROUP BY name_res;