Rami, According to http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt (sec 7.8) HAVING filters results of the preceding <from clause>, <where clause>, or <group by clause>. If that clause is not a <group by clause>, then result consists of a single group and does not have a grouping column.
Its long story to explain my case. In general API returns data based on incoming SELECT statement. On final stage data is inserted into h2 and passed query without <where clause> is executed on it. Anyway - its a nice feature that is supported by major rdbms and is specified in standard. We can always find some dbs that do not support this or that behaviour, but the main rule is standard. Thank you, Taras On Thursday, October 22, 2015 at 2:46:47 PM UTC+3, Rami Ojares wrote: > > AFAIK having is a feature that allows the user to apply to results of > group by. > The order of sql statement is as follows: > - from > - where > - group by > - having > - select clause > - order by > > If I am correct my question to Taras is what do you mean when you want to > use having without group by? > Can't you just use where clause? > > - Rami > > On 22.10.2015 13:44, Taras Fedkiv wrote: > > Thomas, > Please describe in which cases HAVING without GROUP BY is allowed. Current > documentation has no information about it. > Unfortunately you didn't mention Oracle, MySQL, MS that support this > feature and are the most popular rdbms. SQL 92 allows it, too. > > Thank you, > Taras > > > On Wednesday, October 21, 2015 at 6:52:13 PM UTC+3, Thomas Mueller wrote: >> >> Hi, >> >> Your example works with H2 (unfortunately), but this one fails (it throws >> an exception): >> >> drop table table_test; >> CREATE TABLE TABLE_TEST(account_id BIGINT, time BIGINT); >> INSERT INTO TABLE_TEST (account_id,time) VALUES (10,2); >> INSERT INTO TABLE_TEST (account_id,time) VALUES (10,3); >> SELECT account_id, time FROM TABLE_TEST HAVING account_id=10; >> >> It also fails with PostgreSQL, and SQLite, and Apache Derby, and HSQLDB. >> So: nope, this will not be supported in H2. >> >> Regards, >> Thomas >> >> >> On Wednesday, October 21, 2015, Taras Fedkiv <[email protected]> wrote: >> >>> Hi, >>> >>> H2(v1.4.190) throws error if HAVING is used without GROUP BY. >>> Ex: >>> CREATE MEMORY TABLE IF NOT EXISTS TABLE_TEST(account_id BIGINT, time >>> BIGINT) NOT PERSISTENT >>> INSERT INTO TABLE_TEST (account_id,time) VALUES (10,2) >>> SELECT account_id, time FROM TABLE_TEST HAVING account_id=10 //throws >>> org.h2.jdbc.JdbcSQLException: Column """account_id""" must be in the GROUP >>> BY list; >>> >>> Please add support of HAVING without GROUP BY. MySQL, PostgreSQL support >>> this feature. >>> >>> Thank you, >>> Taras >>> >>> >>> The information in this message may be confidential. It is intended >>> solely for >>> the addressee(s). If you are not the intended recipient, any disclosure, >>> copying or distribution of the message, or any action or omission taken >>> by you >>> in reliance on it, is prohibited and may be unlawful. Please immediately >>> contact the sender if you have received this message in error. >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "H2 Database" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> To post to this group, send email to [email protected] >>> <javascript:>. >>> Visit this group at http://groups.google.com/group/h2-database. >>> For more options, visit https://groups.google.com/d/optout. >>> >> > The information in this message may be confidential. It is intended > solely for > the addressee(s). If you are not the intended recipient, any disclosure, > copying or distribution of the message, or any action or omission taken by > you > in reliance on it, is prohibited and may be unlawful. Please immediately > contact the sender if you have received this message in error. > > -- > You received this message because you are subscribed to the Google Groups > "H2 Database" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected] <javascript:>. > To post to this group, send email to [email protected] > <javascript:>. > Visit this group at http://groups.google.com/group/h2-database. > For more options, visit https://groups.google.com/d/optout. > > > -- The information in this message may be confidential. It is intended solely for the addressee(s). If you are not the intended recipient, any disclosure, copying or distribution of the message, or any action or omission taken by you in reliance on it, is prohibited and may be unlawful. Please immediately contact the sender if you have received this message in error. -- You received this message because you are subscribed to the Google Groups "H2 Database" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/h2-database. For more options, visit https://groups.google.com/d/optout.
