Vad är det egentligen för skillnad på "DISTINCT" och "GROUP BY" ? Dvs när man inte vill visa alla dubletter.
DISTINCT och GROUP BY
3 svar · 447 visningar · startad av Virrdo
Dom är väl i viss mån besläktade
select distinct c1,c2,c3 from t
'är samma som
select c1,c2,c3 from t group by c1,c2,c3
man skulle alltså kunna ta bort distinct. I och för sig behövs inte group by heller
select a,min(b) from t group by a
'är samma sak som
select a,(select min(b) from t where a = tt.a)
from t tt
union
select a,(select min(b) from t where a = tt.a)
from t tt
Man kan alltså lägga till att man gör aggregeringar (sum, min, max etc) inom varje grupp när man har group by och sedan kan man ställa villkor på aggregeringen med hjälp av having
select a,sum(b) from t group by a having sum(b) > 57
Naturligtvis så går det att skriva om ovanstående fråga så att den inte använder vare sig group by eller having.
Kontentan är att SQL är väldigt redundant, det finns många sätt att formulera samma sak. Ett praktiskt problem med detta är att det kan ha stor betydelse hur man formulerar sin fråga eftersom en dbms kanske inte klarar av att optimera alla typer av frågor lika bra.
Det jag menar är att två frågor som ger samma resultat borde alltid ge samma svarstid
DISTINCT och SUM
Hej på er!
En liten fråga jag har gjort denna fråga den lägger ihop men
jag vill att den ska ge ett distinct svar nu blir det project 1 och summa, lika många project 1 som det finns. Hoppas ni förstår vad jag menar.
Går det att kombinera DISTINCT med SUM eller?
$strSQL_num = "Select SUM(tid_atgang) From tbl_tidrapport WHERE namn='$namn' AND project_id='$project_id' GROUP BY project_id";
MVH hedda