<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

        明月松間照 清泉石上流


                                            ——— 兵臨城下   貓科動物
    posts - 70, comments - 137, trackbacks - 0, articles - 23
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    關于數據庫count的問題

    Posted on 2006-11-13 11:38 兵臨城下 閱讀(1717) 評論(6)  編輯  收藏 所屬分類: Java EE

    有以下一個表:programmer
    id??????? name??????adresss
    1???????? xc??????????cn
    2???????? xc??????????ae
    2???????? xc???????????rr

    現在我要計算總條數,用count, select count(*) as acount from programmer,這條語句返回3。
    因為這條語句count(*)是計算的所有的字段,而我現在這樣一個要求,就是說寫一條sql語句count id和name 兩個字段,并去掉重復記錄,就是說我查詢id和name兩個字段,去掉重復記錄并返回記錄的條數。
    想了很多辦法都沒成功,網上有這么一條語句:select count(distinct 'id&name') as acount from programmer ,從語句上看好像符合了我的要求,但是這條sql語句返回的卻是1 ,而不是2 ,不知到為什么,還向各位請教。有什么其他的辦法嗎??急等


    評論

    # re: 關于數據庫count的問題  回復  更多評論   

    2006-11-16 12:16 by Jwin
    distinct作用是去掉重復數據.
    例如:表 A 數據如下
    1 xc cn
    1 xc cn
    2 xc cn
    2 xc cn
    3 xc cn
    3 xc cn
    4 xc cn
    4 xc cn
    4 xc cn

    select distinct * from A;
    得出的結論就是
    1 xc cn
    2 xc cn
    3 xc cn
    4 xc cn
    這樣明白吧??

    # re: 關于數據庫count的問題  回復  更多評論   

    2006-11-16 16:03 by 兵臨城下
    謝謝你的回復,這個我明白,但我還有疑問,可能仁兄沒有看懂我的意思。
    表A,數據如下
    1 xc cn
    1 xc ae
    1 xc cn
    2 dd cn

    select distinct * from A;
    返回
    1 xc cn
    1 xc ae
    2 dd cn

    select dinstinct id,name from A;
    返回
    1 xc cn
    2 dd cn

    這些我都知道。而現在我想要的是寫一條sql語句,計算返回符合要求的數據庫record的條數,就是(如以上的數據)我要dinstinct id 和name 兩個字段,并且返回數據2。
    select count(distinct 'id&name') as acount from A 返回的值為2。呵呵

    # re: 關于數據庫count的問題  回復  更多評論   

    2006-11-16 17:05 by loocky
    select count(distinct id||name) as count from a

    # re: 關于數據庫count的問題  回復  更多評論   

    2006-11-16 20:17 by 兵臨城下
    謝了,可以成功執行。可我原本的問題比這復雜,我一個聯合查詢語句如下:
    SELECT count(distinct A.C_MAIN_REF || A.C_UNIT_CODE || A.C_TRX_STATUS) as counter
    FROM TRX_AUTH_LIST A ,TRX_MATRIX_LIST B WHERE A.C_MAIN_REF = 'xcblcx'
    AND A.C_MAIN_REF = B.C_MAIN_REF

    這條語句能成功執行,而下面這條語句卻不行:

    SELECT count(distinct A.C_MAIN_REF || A.C_UNIT_CODE || A.C_TRX_STATUS || A.I_AUTH_LEVEL) as counter
    FROM TRX_AUTH_LIST A ,TRX_MATRIX_LIST B WHERE A.C_MAIN_REF = 'xcblcx'
    AND A.C_MAIN_REF = B.C_MAIN_REF

    差別在于加了一個A.I_AUTH_LEVEL的字段,此字段為integer類型,就不能成功,如果換一個字段為charactor的就可以。
    難道查詢字段也有區別?望指點

    # re: 關于數據庫count的問題  回復  更多評論   

    2006-11-17 08:49 by loocky
    沒有明白你的意思,不好意思

    # re: 關于數據庫count的問題  回復  更多評論   

    2006-11-18 09:25 by 兵臨城下
    我的意思是:如果有以下兩條語句
    語句一:SELECT count(distinct A.C_MAIN_REF || A.C_UNIT_CODE || A.C_TRX_STATUS || A.I_AUTH_LEVEL) as counter
    FROM TRX_AUTH_LIST A ,TRX_MATRIX_LIST B WHERE A.C_MAIN_REF = 'xcblcx'
    AND A.C_MAIN_REF = B.C_MAIN_REF

    語句二:SELECT count(distinct A.C_MAIN_REF || A.C_UNIT_CODE || A.C_TRX_STATUS || A.C_USER_ID) as counter
    FROM TRX_AUTH_LIST A ,TRX_MATRIX_LIST B WHERE A.C_MAIN_REF = 'xcblcx'
    AND A.C_MAIN_REF = B.C_MAIN_REF
    第一條語句能成功執行,而第二條則會報錯。兩條語句的差別在于count函數的內部最后一個字段,(語句一:|| A.I_AUTH_LEVEL 語句二:|| A.C_USER_ID),I_AUTH_LEVEL 為integer,而C_USER_ID為charactor,我所能找到的差別就在此,我就問為什么語句二為什么不能執行成功,難道字段類型也有影響??
    主站蜘蛛池模板: 亚洲av成人一区二区三区观看在线| 久久精品国产亚洲AV电影| 国产成A人亚洲精V品无码| 亚洲av无码无在线观看红杏| 色拍自拍亚洲综合图区| 亚洲xxxx视频| 无码免费又爽又高潮喷水的视频| 久久高潮一级毛片免费| 69精品免费视频| 麻豆成人精品国产免费| 亚洲性在线看高清h片| 亚洲日本中文字幕| 亚洲日本va一区二区三区| yellow视频免费看| 无码专区AAAAAA免费视频| 中文字幕无码视频手机免费看| 免费大香伊蕉在人线国产| 亚洲精品乱码久久久久久自慰| 亚洲日韩在线视频| 二级毛片免费观看全程| 久久久免费精品re6| 日本成人免费在线| 亚洲VA中文字幕无码一二三区 | 亚洲第一福利视频| 亚洲国产精品免费观看| 亚洲一级片免费看| 4hu四虎最新免费地址| 亚洲成av人片天堂网老年人| 亚洲天天在线日亚洲洲精| 精品无码专区亚洲| 久久99精品视免费看| 国产免费观看a大片的网站| 亚洲AV日韩精品久久久久久| 亚洲av无码专区国产不乱码| 99久久人妻精品免费二区| 免费看一级做a爰片久久| 亚洲国产精品yw在线观看| 一个人看的免费观看日本视频www| 国产免费丝袜调教视频| 中文字幕精品亚洲无线码一区 | 亚洲中文字幕久久精品无码VA|