Hi,
I am using beam library in my project and trying to express a query with a several aggregating subqueries:
select
(select * from t order by ts desc limit 1),
(select * from t order by ts asc limit 1),
(select count(*) from t) as nnn
I figured out how to do multiple columns:
userDataTableDigestQ :: UserTable -> SqlSelect
Postgres (UserDataTable, UserDataTable)
userDataTableDigestQ ut = select ag
where
al = all_ (userDataTableRef $ usertableName ut)
ag = subselect_ $ aggregate_
(BF.bimap group_ group_)
((,)
<$> limit_ 1 (orderBy_ (asc_ . userdatatableTs) al)
<*> limit_ 1 (orderBy_ (desc_ . userdatatableTs) al))
but mixing group_ and count_ produces a very long type error
Is there other sql-backend agnostic Haskell library which could express the query above?
--
Best regards,
Daniil Iaitskov