我已經含有特定項目的ID和整個的一定時間內其相應的生產成本下表(只樣品)(在這種情況下被省略) 查詢和通過施加一個特定的濾波器
| id | cost|
|------|-----|
| 1667 | 20 |
| 2000 | 25 |
| 2000 | 30 |
| 1667 | 35 |
| 3244 | 500 |
| 3244 | 0 |
| 3244 | 25 |
| 3244 | 26 |
| 9999 | 56 |
| 3814 | 526 |
| 9999 | 699 |
| 3814 | 13 |
分組數據
我想提取每個特定ID的最大值,到目前爲止我已經成功。輸出看起來像這樣:
| id | cost |
|------|-------|
| 2000 | 30 |
| 1667 | 35 |
| 3244 | 500 |
| 3814 | 526 |
| 9999 | 699 |
我使用的代碼是:
SELECT *
FROM t1 WHERE (id,cost) IN
(SELECT id, max(cost)
FROM t1
GROUP BY id
)
不過,我想獲得最大價值,因爲有時成本爲0或進入之前應用額外的過濾器數字太高。
- 首先,我想排除價格= 0的所有ID。
- 其次,我想排除高於特定ID的2x3rd四分位數的所有價格。
例如,如果我們把ID = 3244,過程是這樣的:
| id | cost | | id | cost | | id | cost |
|------|-------| |------|-------| |------|-------|
| 3244 | 500| | 3244 | 500| | | |
| 3244 | 0| | | | | | |
| 3244 | 25| | 3244 | 25| | 3244 | 25|
| 3244 | 26| | 3244 | 26| | 3244 | 26|
我會得到ID = 3244將是26號,我想重複這個過程每個ID。
你能告訴什麼是2x3rd四分位 – Shankar
通過聲明** ID的第三四分位數**你的意思是一個'ID = 1234'第三四分位數將是'3' – RiggsFolly
@Shankar我的意思是,如果特定的行值比第三四分位數高兩倍,我希望查詢排除它,即id = 3244的第三四分位數是263(不包括0); 500> 263因此排除500. –