請問如何用 SQL 下命令去過濾某個次數以上的資料? |
答題得分者是:pedro
|
jtain
一般會員 發表:16 回覆:18 積分:6 註冊:2005-01-03 發送簡訊給我 |
|
careychen
尊榮會員 發表:41 回覆:580 積分:959 註冊:2004-03-03 發送簡訊給我 |
hi, 試試下面這樣
[code sql] Select 機型, Count(機型) as Total from Table Group by 機型 order by Count(機型) desc [/code] ===================引 用 jtain 文 章=================== 例如:資料結構如下。 機型 char(20),日期 char(8),人員 char(20) 我想要尋找同一機型出現2次以上的資料時,我該如何下SQL命令? 我目前是用程式來過濾,但這樣會使得執行的速度明顯的變慢 所以,想尋找更快速的方式。
------
價值的展現,來自於你用哪一個角度來看待它!! |
boss.tw
高階會員 發表:15 回覆:109 積分:194 註冊:2005-05-17 發送簡訊給我 |
table = 資料表
type = 型號欄位 [code sql] SELECT* FROM `table` WHERE 1 AND `type`=`type1` [/code] ===================引 用 jtain 文 章=================== 例如:資料結構如下。 機型 char(20),日期 char(8),人員 char(20) 我想要尋找同一機型出現2次以上的資料時,我該如何下SQL命令? 我目前是用程式來過濾,但這樣會使得執行的速度明顯的變慢 所以,想尋找更快速的方式。 |
pedro
尊榮會員 發表:152 回覆:1187 積分:892 註冊:2002-06-12 發送簡訊給我 |
試看看
[code sql] declare @work table(mtype char(20),xdate char(8),operator char(20)) insert @work select 'A001','20081122','PEDRO' insert @work select 'A001','20081125','JOHN' insert @work select 'A003','20081115','PEDRO' select * from ( select a1.mtype,count(a2.xdate) times from @work a1 join @work a2 on a1.mtype=a2.mtype and a1.xdate=a2.xdate group by a1.mtype ) t where times>=2 [/code] |
jtain
一般會員 發表:16 回覆:18 積分:6 註冊:2005-01-03 發送簡訊給我 |
我目前就是這樣用啊!但我只需要 total 大於 2 以上的,所以就變成我還需要用程式來判斷
我目前就是想尋找直接用SQL完成而不需要另外用程式來過濾,因為這樣會導致效率大幅度的降低。 ===================引 用 careychen 文 章=================== hi, 試試下面這樣 [code sql] Select 機型, Count(機型) as Total from Table Group by 機型 order by Count(機型) desc [/code]
------
無所不在 |
jtain
一般會員 發表:16 回覆:18 積分:6 註冊:2005-01-03 發送簡訊給我 |
|
jtain
一般會員 發表:16 回覆:18 積分:6 註冊:2005-01-03 發送簡訊給我 |
不好意思,我用的 MS SQL,你的命令我在MS SQL裡是無效的....
我本來想用你的方式改成ms SQL,前面的新增資料,我不用管吧 但...原諒我才疏學淺,還是套用失敗! ===================引 用 pedro 文 章=================== 試看看 [code sql] declare @work table(mtype char(20),xdate char(8),operator char(20)) insert @work select 'A001','20081122','PEDRO' insert @work select 'A001','20081125','JOHN' insert @work select 'A003','20081115','PEDRO' select * from ( select a1.mtype,count(a2.xdate) times from @work a1 join @work a2 on a1.mtype=a2.mtype and a1.xdate=a2.xdate group by a1.mtype ) t where times>=2 [/code]
------
無所不在 |
careychen
尊榮會員 發表:41 回覆:580 積分:959 註冊:2004-03-03 發送簡訊給我 |
哦,您一開始並沒說您有這樣用,抱歉,您在 Group 的後面加個 Having 就行了
[code sql] Select 機型, Count(機型) as Total from Table Group by 機型 Having Count(機型) > 2 order by Count(機型) desc [/code] ===================引 用 jtain 文 章=================== 我目前就是這樣用啊!但我只需要 total 大於 2 以上的,所以就變成我還需要用程式來判斷 我目前就是想尋找直接用SQL完成而不需要另外用程式來過濾,因為這樣會導致效率大幅度的降低。 ===================引 用 careychen 文 章=================== hi, 試試下面這樣 [code sql] Select 機型, Count(機型) as Total from Table Group by 機型 order by Count(機型) desc [/code]
------
價值的展現,來自於你用哪一個角度來看待它!! |
pedro
尊榮會員 發表:152 回覆:1187 積分:892 註冊:2002-06-12 發送簡訊給我 |
|
jtain
一般會員 發表:16 回覆:18 積分:6 註冊:2005-01-03 發送簡訊給我 |
|
careychen
尊榮會員 發表:41 回覆:580 積分:959 註冊:2004-03-03 發送簡訊給我 |
|
pedro
尊榮會員 發表:152 回覆:1187 積分:892 註冊:2002-06-12 發送簡訊給我 |
|
jtain
一般會員 發表:16 回覆:18 積分:6 註冊:2005-01-03 發送簡訊給我 |
啊!不好意思,是我沒注意到我沒寫清楚。
但是我實務上還是使用您的方法 請原諒我因為臨時被抓來寫程式,時間只有2周非常趕,所以,沒有太多的精力來處理額外的事物。 幸好,有了大家的幫忙,總算告一段落了。目前就等待測試報告了。 ===================引 用 careychen 文 章=================== 呵,我有注意到您的條件式,請您再注意一下,我是寫 > 2 ,而 pedro 前輩是 >=2 您的問題是 大於 2 ,不過分數不是重點,確定是您要的結果即可~~!
------
無所不在 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |