you are viewing a single comment's thread
view the rest of the comments
[–] 0 points 2 years ago (1 child)

having is less annoying way of not doing needless/bug-prone repetition. if you select someCalculatedValue(someInput) as lol you can add having lol > 42 in mysql, whereas without (ie in pgsql) you’d need to do where someCalculatedValue(someInput) > 42, and make sure changes to that call stay in sync despite how far apart they are in a complex sql statement.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 1 point 2 years ago

    Postgres has the having clause. If it didn't, that wouldn't work, as you can't use aggregates in a where. If you have to make do without having, for some reason, you can use a subquery, something like select * from (select someCalculatedValue(someInput) as lol) as stuff where lol > 42, which is very verbose, but doesn't cause the sync problem.

    Also, I don't think they were saying the capability having gives is bad, but that a new query language should be designed such that you get that capability without it.

  • source
  • parent