[技術討論] (己解決)(SQL) 每個account 只要第一條 record

本帖最後由 我叫日日野 於 2016-4-17 23:08 編輯

請教各位ching, 我有個 table如圖(有顏色的部份),
每個 "account_no" 我只係想出佢第一條既 record, 其他唔要, 請問 SQL(oracle) 可以點樣寫?

嗜係我只想留低以下既 row:
A, C, F, H, L

感激!!




----------
20160417:
update 返個header 先, 多謝咁多位ching, 問題已經解決! :)
附件: 您需要登錄才可以下載或查看附件。沒有帳號?註冊

如果唔同日子我都可以用 max date 去 group 埋佢, 但係有D係同一日入...
有D account 就出現4次等等...

我只想要每個account 既最先(前)果條就 OKay

TOP

select min(InputDate), Account_no, Product_cd, Agent
from table
group by Account_no

未測試, 你可以T ...
WhatTheFish 發表於 2016-3-29 16:23



    thx!
其實再加埋 min(product_cd), min(agent) 黎 group 都得既... 不過實際上個 TABLE 重有好多 column(20個左右), 唔通真係要咁做? #__#

TOP

回覆 6# 望月小妖


    WA! 我記得你個名!! 不過唔記得咩game 見過 XD

any肥, 我最後咁:
唔知係咪有D 蠢

CREATE TABLE duplicate_records_2 AS
SELECT ROWNUM rn, A.* FROM duplicate_records_1 A
;
SELECT A.*
FROM duplicate_records_2 A,
(
SELECT account_no, MIN(ROWNUM) min_row_num
FROM duplicate_records_1
GROUP BY account_no
) b
WHERE A.account_no = b.account_no
AND A.rn = b.min_row_num
;

TOP

回覆 8# snoopy11hk


    thx!! 聽日試吓~

TOP

回覆 9# 望月小妖


    yes... 我成日用 group by + max/min 去搵最大/最少, group 完都可能重有 duplicate, 要一次過 group 多幾個 column 或者落多D criteria ...

TOP

回覆 12# Super169


    ic~
"第一條" 既定義係: 條 record 既輸入先後去排, 最早入果條就係第一條.
如果我用 7# 果條 SQL 應該就係我想要既野.
但係正常做法可能係 8# 果條先岩, 我要再試下.


同埋我諗我明"小妖"既意思, 就以 <F> 同 <G> 果兩行為例, 如果group 埋佢同時又用min(?) 既話, "Product_cd" 就會囉左 "KSE02", "Agent" 就會囉左 "AG01".
但係跟本就冇一條咁既 record.

TOP

我會咁寫
SELECT *
FROM
(
SELECT
a.*
, ROW_NUMBER() OVER (PARTITION BY ACCOUNT_NO, ORDER BY I ...
snoopy11hk 發表於 2016-3-29 18:13



得左, 囉到所有 account 既第一條 record 出黎!
簡短過我上面 7# 果條

不過  "ACCOUNT_NO" 同 "ORDER BY" 之間多左個 comma(,),
delete 左就ok了!
thanks!!

TOP

如果你話用輸入次序, 唔知 Oracle 係咪有呢樣野, 假設有 #8 講既 row_number() 存在 (否則都無得 sort). ...
Super169 發表於 2016-3-30 16:42



我唔肯定如果你咁寫既話, 係可以只 group 一個 field 都過到關?
我試過照你咁係行唔到, 所以之後我 group 晒上面果4 個 field, 再加你果句 having row_number() = min(row_number()) 係最後.
答案係出 error:
  1. ORA-30484: missing window specification for this function
複製代碼
我諗可能係衰左係 having 果度.

TOP

即兮搵 Account_no + Agent 最早出現的 Input_Date 和 當時的 Product_cd?
但兮 Input_Date 會重複, 點揀 ...
toylet 發表於 2016-3-30 22:31



    冇錯, 我已經搵到答案了, thanks anyway!
table 本身有記錄每條 record 既row number 的, 唔駛特別加.
用 rownum 就會見到.

TOP