trait GroupByUtilsModule extends AnyRef
User lands in this builder in case there is a "partial aggregation" in a query like:
select Count(id), customer_id from orders group by customer_id
In such a case its not possible to execute query before we group by customer_id.
As we need to check F of every Expr, groupBy method is overloaded by 22 arities - even though partically, mostly only few are necessary.
Without group by clause, AggSelectBuilderGroupBy is not executable so calling groupBy is the only choice.
The query won't compile unless user groups at least by required columns.
In case we are not dealing with partial aggregation, this builder is skipped and user can groupBy in Read.Subselect as usual.
Following are all valid examples of queries not using this AggSelectBuilderGroupBy trait.
select Count(id) from orders group by customer_id
select Count(id) from orders
select customer_id from orders group by customer_id
select customer_id from orders group by customer_id
- Self Type
- GroupByUtilsModule with SelectModule with ExprModule
- Alphabetic
- By Inheritance
- GroupByUtilsModule
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
- sealed case class AggSelectBuilderGroupBy[F, Repr, Source, Head, Tail <: (GroupByUtilsModule.this)#SelectionSet[Source], Unaggregated](select: Select[F, Repr, Source, Head, Tail]) extends Product with Serializable
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()