有一张表字段为:卡号(cardid),卡名称(cardname),面值(cardmoney),日期(date)1.查询此表中的不同面值的记录数
2.查询此表中具有相同卡名称的记录数
3.查询此表中具有相同卡名称的卡号和相同的数量谢谢各位谁能解决以上3个问题

解决方案 »

  1.   

    呵呵,楼主连表名似乎都不愿意给出啊
    假设表名为card_info,求解如下:1.select cardmoney, count(*)
        from card_info
       group by cardmoney;2.select cardname, count(*)
        from card_info
       group by cardname;3.呵呵,第三个问题,我似乎理解不来你想问什么.
      

  2.   

    1.select count(distinct cardmoney) from card_info;
    2.同2楼
    3.同样不理解
      

  3.   

    1、同上
    2、select   cardname, count(cardname)
        from   card_info 
       group   by   cardname
      having  count(cardname) > 1;
    3、具有相同卡号的数量第二问中的结果就是你需要的,至于查同名称的卡号可以这么做:
       select m.cardid,count(m.cardid) from card_info m,
       (select   cardname from   card_info 
       group   by   cardname having  count(cardname) > 1) n
       where m.cardname =  n.cardname;
      

  4.   


    没有按照你的需求建立表和数据 下面是自己的表和数据 谨供参考~
    SQL> desc testa;
     名称                                      是否为空? 类型
     ----------------------------------------- -------- ----------------------------
     ID                                                 NUMBER(3)
     NAME                                               VARCHAR2(6)
     ADDR                                               VARCHAR2(6)
     AGE                                                NUMBER(3)SQL> select * from testa;        ID NAME   ADDR          AGE
    ---------- ------ ------ ----------
            10 电脑   苏州           16
             3 电子   南京           23
             5 物理   北京           23
             6 物理   河北           25
             1 电脑   上海           23
             2 电子   北京           22
             4 物理   芜湖           22
             7 艺术   上海           21
             8 歌剧   苏州           16
             9 艺术   上海           21已选择10行。
    --①统计不同年龄的记录个数
    SQL>  select age,count(age)sum_age
      2   from testa
      3   group by age
      4   order by sum_age desc,age asc;       AGE    SUM_AGE
    ---------- ----------
            23          3
            16          2
            21          2
            22          2
            25          1--②出现有相同年龄的记录
    SQL> select id,name,age
      2  from (select id,name,age,count(*) over(partition by age)rn from testa)m
      3  where m.rn>=2;
            ID NAME         AGE
    ---------- ------ ----------
            10 电脑           16
             8 歌剧           16
             7 艺术           21
             9 艺术           21
             4 物理           22
             2 电子           22
             5 物理           23
             3 电子           23
             1 电脑           23已选择9行。
         
    --出现重复名字的
    SQL>   select id,name,age
      2    from (select id,name,age,count(*) over(partition by name)rn from testa)m
      3  where m.rn>=2;        ID NAME         AGE
    ---------- ------ ----------
            10 电脑           16
             1 电脑           23
             2 电子           22
             3 电子           23
             5 物理           23
             6 物理           25
             4 物理           22
             9 艺术           21
             7 艺术           21已选择9行。--③相同名字和年龄的
    SQL> select id,name,age
      2  from (select id,name,age,count(*) over(partition by name,age)rn from testa)m
      3   where m.rn>=2;        ID NAME         AGE
    ---------- ------ ----------
             9 艺术           21
             7 艺术           21--相同名字和地址的
    SQL>  select id,name,age
      2   from (select id,name,age,count(*) over(partition by age,addr)rn from testa)m
      3   where m.rn>=2;        ID NAME         AGE
    ---------- ------ ----------
            10 电脑           16
             8 歌剧           16
             9 艺术           21
             7 艺术           21
    --相同年龄和地址加统计的
    select * from 
        (select id,name,age,addr,count(*) over(partition by age,addr)rn from testa)m
        where m.rn>=2;     ID NAME         AGE ADDR         RN
    ------- ------ ---------- ------ ----------
         10 电脑           16 苏州            2
          8 歌剧           16 苏州            2
          9 艺术           21 上海            2
          7 艺术           21 上海            2