2013-07-25 2 views
0

Мне нужна помощь с кодом SQL для идентификации повторения последовательности. Скажем, например, моя структура таблицы выглядит так:Идентификация дубликатов вхождений комбинации и присвоение счету 1

Name E_Date Maker Status 
---- ------ ----- ------ 
John Apr-6 Apple Success 
Peter Apr-6 Apple Success 
John Apr-6 Apple Success 
Peter Apr-7 Samsung Success 
John Apr-6 Samsung Success 
John Apr-6 Apple Failure 
Peter Apr-6 Apple Success 
John Apr-6 Apple Success 

Так выше записи есть 4 колонков/размеров и вы можете увидеть John апреля-6 Apple, успех имеет три вхождения. Мой код SQL должен считать это и назначить rec_cnt = 3 и dup_cnt = 1

Может ли кто-нибудь помочь мне с этим?

+0

Добро пожаловать в Переполнение стека. Вскоре прочитайте страницу [О программе]. Мне любопытно, почему число дубликатов 1, а не 2 (или просто 'dup_cnt = rec_cnt - 1')? Кроме того, почему ваша таблица не имеет имени? Или как мы должны писать запросы против вашей анонимной таблицы. (Вы не первый, кто забыл, что таблицы имеют имена, я дал имена столбцов данных.) –

ответ

0

Вы должны использовать GROUP BY и COUNT:

SELECT Name, E_Date, Maker, Status, COUNT(*) AS Rec_Cnt 
    FROM AnonymousTable 
GROUP BY Name, E_Date, Maker, Status 

Пока вы не определите, как dup_cnt получается, я не буду пытаться оценить, что, либо.

Я также наблюдаю, что в вашем столе нет первичного ключа, который, как правило, плохая идея. Вы должны убедиться, что есть способ предотвратить дублирование записей в таблице. Если худшее приходит к худшему, вы добавляете один из вездесущих столбцов идентификаторов, но если есть альтернатива, вы должны использовать это предпочтение.

Смежные вопросы