@Override
 public int hashCode() {
   final int prime = 31;
   int result = 1;
   result = prime * result + (select == null ? 0 : select.hashCode());
   result = prime * result + (from == null ? 0 : from.hashCode());
   result = prime * result + (where == null ? 0 : where.hashCode());
   result = prime * result + (orderBy == null ? 0 : orderBy.hashCode());
   result = prime * result + (groupBy == null ? 0 : groupBy.hashCode());
   result = prime * result + (having == null ? 0 : having.hashCode());
   result = prime * result + (int) (limit ^ (limit >>> 32));
   result = prime * result + (int) (offset ^ (offset >>> 32));
   return result;
 }