sql - Rewriting the HAVING clause and COUNT function -
i'm trying conceptually understand how rewrite having clause , count function.
i asked "find names of reviewers have contributed 3 or more ratings. (as challenge, try writing query without having or without count.)" in relation this simple database: http://sqlfiddle.com/#!5/35779/2/0
the query having , count easy. without, i'm having difficulty.
help appreciated. thank you.
one option use sum(1) in place of count in subquery, , using where instead of having:
select b.name (select rid,sum(1) sum1 rating group rid )a join reviewer b on a.rid = b.rid sum1 >= 3 demo: sql fiddle
update: explanation of sum(1): adding constant select statement result in value being repeated every row returned, example:
select rid ,1 col1 rating returns:
| rid | col1 | |-----|------| | 201 | 1 | | 201 | 1 | | 202 | 1 | | 203 | 1 | | 203 | 1 | ...... sum(1) applying constant 1 every row , aggregating it.
Comments
Post a Comment