今天去面试,有到题目是这样的:
    一个表有name,id字段,name的值就类似"张三" ,"李四" 这样。要求: 
           不考虑复姓,找到姓相同的且大于20个,查询结果以 姓、数目列示。
             有知道的高手说下,谢谢了。

解决方案 »

  1.   


    select count(*),SUBSTR(xm,1,1)as name from n_Human_Czrk group by SUBSTR(xm,1,1)
      

  2.   

    select left(name,1) as fname, count(name) as num from tablename group by left(name, 1) having count(name) > 20;
      

  3.   

    SELECT COUNT(*) AS Expr1, SUBSTRING(name, 1, 1) AS Expr2
    FROM emp
    GROUP BY SUBSTRING(name, 1, 1)
    HAVING (COUNT(*) > 3)
      

  4.   

    MYSQL 版本!select SUBSTR(t.str,1,1) as xing, count(*) as count from test as t  group by SUBSTR(t.str,1,1) having COUNT(*)>3
      

  5.   


    select count(1),namefrom tt group by name  having count(rtrim(ltrim(left(name,1))))>20
      

  6.   

    Select substr(a.name,1,1),Count(*) As num From test_table a
    Group By substr(a.name,1,1) Having Count(*) >20
      

  7.   

    select left(name,1) as fname, count(name) as num from tablename group by left(name, 1) having count(name) > 20;
      

  8.   

    顶,
    但left在SQL Server能用
    oracle中不能用