有一张表Ta,A列物品名称、B材质、C型号,想删除型号出现次数小于5次的记录,小弟功底薄,拼凑1个多小时,也没写出来。

解决方案 »

  1.   

    Ta,A列物品名称、B材质、C型号,想删除型号出现次数小于5次的记录,
    delete ta where c型号 in (
    select c型号 from (
    select c型号,count(*) cnum from ta group by c型号) where cnum<5)
      

  2.   

    用HAVING更佳delete ta where c型号 in (
    select c型号 from ta group by c型号 having count(*) < 5);另:此条语句未测试,懒的准备数据了。:)
      

  3.   

    没有用过having 呵呵不过,我想我的可以说是更容易让新手理解吧!
      

  4.   

    你说的没错,非常感谢,在Oracle中测试没问题,可是我的数据在一个DBF文件中,上面SQL执行时有语法错误。
      

  5.   

    --数据量小的话,可以用snowy_howe(天下有雪) ( ) 信誉:100 
    的办法,数据量大的话,建议改将in 改成exists,
    下面语句也没有测试
    delete ta where exists(
    select c型号
    from (
    select c型号 from ta group by c型号 having count(*) < 5
    )a 
    where a.c型号 = ta.c型号
    );
      

  6.   

    问题解决:用having做可以,对dbf库“ select c型号,count(*) cnum from ”不能执行。