没有id, 去除笛卡尔积也会出现重复的现象, 如果图上周杰伦出现一科80分一下, 也会查出来 ,   sql语句该怎么写

解决方案 »

  1.   

    select name
    from student
    where fenshu>'80'
    group by name
    having count(1)=2
      

  2.   

    select distinct s1.name from student s1 where s1.name not in (select s2.name from student s2 where s2.fenshu<80) 
      

  3.   


    select distinct s1.name from student s1 where s1.name not in (s2.name from student s2 where s2.分数<=80);
      

  4.   

    select b.name from ( select s.name name,min(fenshu) fenshu from studetn s
    group by s.name) b where b.fenshu>80
      

  5.   


    -- 试试这个select name 
    from t 
    group by name
    having count(*) = sum(case when fenshu > 80 then 1 else 0 end)
      

  6.   

    select name,
           min(fenshu)
           from table
           group by name having min(fenshu)>80