GROUP BY не "премахва дубликати". GROUP BY позволява агрегиране. Ако всичко, което искате, е да комбинирате дублирани редове, използвайте SELECT DISTINCT.
Ако трябва да комбинирате редове, които се дублират в някои колони, използвайте GROUP BY, но трябва да укажете какво да правите с другите колони. Можете или да ги пропуснете (като не ги посочите в клаузата SELECT), или да ги агрегирате (като използвате функции като SUM, MIN и AVG). Например:
SELECT watch.watch_id, COUNT(rec.street_number), MAX(watch.watch_date)
... GROUP by watch.watch_id
РЕДАКТИРАНЕ
ОП поиска известно разяснение.
Помислете за "изглед" - всички данни, събрани от FROM и JOIN и WHERE - наречете това V. Има две неща, които може да искате да направите.
Първо, може да имате напълно дублиращи се редове които искате да комбинирате:
a b c
- - -
1 2 3
1 2 3
3 4 5
След това просто използвайте DISTINCT
SELECT DISTINCT * FROM V;
a b c
- - -
1 2 3
3 4 5
Или може да имате частично дублиращи се редове които искате да комбинирате:
a b c
- - -
1 2 3
1 2 6
3 4 5
Тези първи два реда са „едни и същи“ в известен смисъл, но ясно се различават в друг смисъл (по-специално те не биха да бъдат комбинирани чрез SELECT DISTINCT). Вие трябва да решите как да ги комбинирате. Можете да отхвърлите колона c като маловажна:
SELECT DISTINCT a,b FROM V;
a b
- -
1 2
3 4
Или можете да извършите някакъв вид агрегиране върху тях. Можете да ги добавите:
SELECT a,b, SUM(c) "tot" FROM V GROUP BY a,b;
a b tot
- - ---
1 2 9
3 4 5
Можете да добавите изберете най-малката стойност:
SELECT a,b, MIN(c) "first" FROM V GROUP BY a,b;
a b first
- - -----
1 2 3
3 4 5
Или можете да вземете средната стойност (AVG), стандартното отклонение (STD) и която и да е от куп други функции, които приемат куп стойности за c и да ги комбинирате в една.
Това, което всъщност не е опция, е просто да не правите нищо. Ако просто изброите негрупираните колони, СУБД или ще изведе грешка (Oracle прави това -- правилният избор, imo), или ще избере една стойност повече или по-малко на случаен принцип (MySQL). Но както д-р Пърт каза:„Когато решите да не решите, вие все пак сте направили избор.“