sql - Why is a group by clause required when rows are limited in where clause? -



sql - Why is a group by clause required when rows are limited in where clause? -

fiid primary key of table1. why query homecoming many rows there fiid in table1. fiid beingness limited 1 row in clause. query performs when grouping table1.fiid added, certainly should not needed? thanks.

select table1.fiid, sum(case table2.type in (4,7) table2.valuetosum else 0 end), table1 inner bring together table3 on table1.fiid = table3.parentid inner bring together table2 on table2.leid = table3.fiid table1.fiid = 76813 , table2.insid = 431144

when using aggregate functions in select such sum , count when selecting other columns well, group by including additional columns required. while don't know exact reason behind this, helps set results in context.

consider next query:

select name, count(product) numorders customerorders grouping name

here, assume results this:

class="lang-none prettyprint-override">name numorders ------------------ joe 15 sally 5 jim 23

now, if sql did not require group by, expect output be? best guess this:

class="lang-none prettyprint-override">name numorders ------------------ joe 43 sally 43 jim 43

in case, while there may in fact 43 order records in table, including name doesn't provide useful data. instead, have bunch of names out of context.

for more on this, see similar question here: why need explicitly specify columns in sql "group by" clause - why not "group *"?

sql oracle

Comments

Popular posts from this blog

formatting - SAS SQL Datepart function returning odd values -

c++ - Apple Mach-O Linker Error(Duplicate Symbols For Architecture armv7) -

php - Yii 2: Unable to find a class into the extension 'yii2-admin' -