明月松間照 清泉石上流


                                                  ——— 兵臨城下   貓科動(dòng)物
          posts - 70, comments - 137, trackbacks - 0, articles - 23
            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          關(guān)于數(shù)據(jù)庫(kù)count的問(wèn)題

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

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

          現(xiàn)在我要計(jì)算總條數(shù),用count, select count(*) as acount from programmer,這條語(yǔ)句返回3。
          因?yàn)檫@條語(yǔ)句count(*)是計(jì)算的所有的字段,而我現(xiàn)在這樣一個(gè)要求,就是說(shuō)寫(xiě)一條sql語(yǔ)句count id和name 兩個(gè)字段,并去掉重復(fù)記錄,就是說(shuō)我查詢(xún)id和name兩個(gè)字段,去掉重復(fù)記錄并返回記錄的條數(shù)。
          想了很多辦法都沒(méi)成功,網(wǎng)上有這么一條語(yǔ)句:select count(distinct 'id&name') as acount from programmer ,從語(yǔ)句上看好像符合了我的要求,但是這條sql語(yǔ)句返回的卻是1 ,而不是2 ,不知到為什么,還向各位請(qǐng)教。有什么其他的辦法嗎??急等


          評(píng)論

          # re: 關(guān)于數(shù)據(jù)庫(kù)count的問(wèn)題  回復(fù)  更多評(píng)論   

          2006-11-16 12:16 by Jwin
          distinct作用是去掉重復(fù)數(shù)據(jù).
          例如:表 A 數(shù)據(jù)如下
          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;
          得出的結(jié)論就是
          1 xc cn
          2 xc cn
          3 xc cn
          4 xc cn
          這樣明白吧??

          # re: 關(guān)于數(shù)據(jù)庫(kù)count的問(wèn)題  回復(fù)  更多評(píng)論   

          2006-11-16 16:03 by 兵臨城下
          謝謝你的回復(fù),這個(gè)我明白,但我還有疑問(wèn),可能仁兄沒(méi)有看懂我的意思。
          表A,數(shù)據(jù)如下
          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

          這些我都知道。而現(xiàn)在我想要的是寫(xiě)一條sql語(yǔ)句,計(jì)算返回符合要求的數(shù)據(jù)庫(kù)record的條數(shù),就是(如以上的數(shù)據(jù))我要dinstinct id 和name 兩個(gè)字段,并且返回?cái)?shù)據(jù)2。
          select count(distinct 'id&name') as acount from A 返回的值為2。呵呵

          # re: 關(guān)于數(shù)據(jù)庫(kù)count的問(wèn)題  回復(fù)  更多評(píng)論   

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

          # re: 關(guān)于數(shù)據(jù)庫(kù)count的問(wèn)題  回復(fù)  更多評(píng)論   

          2006-11-16 20:17 by 兵臨城下
          謝了,可以成功執(zhí)行。可我原本的問(wèn)題比這復(fù)雜,我一個(gè)聯(lián)合查詢(xún)語(yǔ)句如下:
          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

          這條語(yǔ)句能成功執(zhí)行,而下面這條語(yǔ)句卻不行:

          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

          差別在于加了一個(gè)A.I_AUTH_LEVEL的字段,此字段為integer類(lèi)型,就不能成功,如果換一個(gè)字段為charactor的就可以。
          難道查詢(xún)字段也有區(qū)別?望指點(diǎn)

          # re: 關(guān)于數(shù)據(jù)庫(kù)count的問(wèn)題  回復(fù)  更多評(píng)論   

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

          # re: 關(guān)于數(shù)據(jù)庫(kù)count的問(wèn)題  回復(fù)  更多評(píng)論   

          2006-11-18 09:25 by 兵臨城下
          我的意思是:如果有以下兩條語(yǔ)句
          語(yǔ)句一: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

          語(yǔ)句二: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
          第一條語(yǔ)句能成功執(zhí)行,而第二條則會(huì)報(bào)錯(cuò)。兩條語(yǔ)句的差別在于count函數(shù)的內(nèi)部最后一個(gè)字段,(語(yǔ)句一:|| A.I_AUTH_LEVEL 語(yǔ)句二:|| A.C_USER_ID),I_AUTH_LEVEL 為integer,而C_USER_ID為charactor,我所能找到的差別就在此,我就問(wèn)為什么語(yǔ)句二為什么不能執(zhí)行成功,難道字段類(lèi)型也有影響??
          主站蜘蛛池模板: 柳江县| 梓潼县| 北票市| 仪征市| 罗江县| 昂仁县| 喀喇沁旗| 胶州市| 华宁县| 潞西市| 汉阴县| 崇左市| 兴文县| 周口市| 兴安盟| 萨嘎县| 招远市| 北宁市| 渝北区| 客服| 长兴县| 墨玉县| 福州市| 买车| 利辛县| 邛崃市| 文化| 孝义市| 咸宁市| 昭觉县| 新闻| 乳源| 仪征市| 沈阳市| 婺源县| 图们市| 利辛县| 井陉县| 望奎县| 碌曲县| 马龙县|