org.teiid.query.sql.lang.Query.setHaving()方法的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(13.4k)|赞(0)|评价(0)|浏览(585)

本文整理了Java中org.teiid.query.sql.lang.Query.setHaving方法的一些代码示例,展示了Query.setHaving的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Query.setHaving方法的具体详情如下:
包路径:org.teiid.query.sql.lang.Query
类名称:Query
方法名:setHaving

Query.setHaving介绍

[英]Set the criteria clause for the query.
[中]

代码示例

代码示例来源:origin: org.teiid/teiid-engine

  1. private static boolean shouldEvaluate(boolean simplifyCriteria,
  2. boolean duringPlanning, Criteria criteria, Query query, boolean having)
  3. throws ExpressionEvaluationException, BlockedException,
  4. TeiidComponentException {
  5. if(criteria == null) {
  6. return true;
  7. } else if(!EvaluatableVisitor.isFullyEvaluatable(criteria, duringPlanning)) {
  8. // If there are elements present in the criteria,
  9. // then we don't know the result, so assume we need to execute
  10. return true;
  11. } else if(Evaluator.evaluate(criteria)) {
  12. if (simplifyCriteria) {
  13. if (having) {
  14. query.setHaving(null);
  15. } else {
  16. query.setCriteria(null);
  17. }
  18. }
  19. return true;
  20. }
  21. return false;
  22. }

代码示例来源:origin: teiid/teiid

  1. private static boolean shouldEvaluate(boolean simplifyCriteria,
  2. boolean duringPlanning, Criteria criteria, Query query, boolean having)
  3. throws ExpressionEvaluationException, BlockedException,
  4. TeiidComponentException {
  5. if(criteria == null) {
  6. return true;
  7. } else if(!EvaluatableVisitor.isFullyEvaluatable(criteria, duringPlanning)) {
  8. // If there are elements present in the criteria,
  9. // then we don't know the result, so assume we need to execute
  10. return true;
  11. } else if(Evaluator.evaluate(criteria)) {
  12. if (simplifyCriteria) {
  13. if (having) {
  14. query.setHaving(null);
  15. } else {
  16. query.setCriteria(null);
  17. }
  18. }
  19. return true;
  20. }
  21. return false;
  22. }

代码示例来源:origin: org.teiid/teiid-engine

  1. private void processCriteria(Collection<GroupSymbol> leftGroups,
  2. PlannedResult plannedResult, List<GroupSymbol> rightGroups,
  3. Set<Expression> requiredExpressions, final SymbolMap refs,
  4. Criteria joinCriteria, GroupBy groupBy, boolean where) {
  5. if (joinCriteria == null) {
  6. return;
  7. }
  8. List<Criteria> crits = Criteria.separateCriteriaByAnd((Criteria)joinCriteria.clone());
  9. for (Iterator<Criteria> critIter = crits.iterator(); critIter.hasNext();) {
  10. Criteria conjunct = critIter.next();
  11. List<Expression> additionalRequired = new LinkedList<Expression>();
  12. AggregateSymbolCollectorVisitor.getAggregates(conjunct, additionalRequired, additionalRequired, additionalRequired, null, groupBy!=null?groupBy.getSymbols():null);
  13. ReferenceReplacementVisitor emv = new ReferenceReplacementVisitor(refs);
  14. DeepPostOrderNavigator.doVisit(conjunct, emv);
  15. if (!emv.replacedAny) {
  16. //if not correlated, then leave it on the query
  17. critIter.remove();
  18. if (where) {
  19. plannedResult.query.setCriteria(Criteria.combineCriteria(plannedResult.query.getCriteria(), conjunct));
  20. } else {
  21. plannedResult.query.setHaving(Criteria.combineCriteria(plannedResult.query.getHaving(), conjunct));
  22. }
  23. } else {
  24. requiredExpressions.addAll(additionalRequired);
  25. }
  26. }
  27. RuleChooseJoinStrategy.separateCriteria(leftGroups, rightGroups, plannedResult.leftExpressions, plannedResult.rightExpressions, crits, plannedResult.nonEquiJoinCriteria);
  28. }

代码示例来源:origin: org.jboss.teiid/teiid-engine

  1. private void processCriteria(Collection<GroupSymbol> leftGroups,
  2. PlannedResult plannedResult, List<GroupSymbol> rightGroups,
  3. Set<Expression> requiredExpressions, final SymbolMap refs,
  4. Criteria joinCriteria, GroupBy groupBy, boolean where) {
  5. if (joinCriteria == null) {
  6. return;
  7. }
  8. List<Criteria> crits = Criteria.separateCriteriaByAnd((Criteria)joinCriteria.clone());
  9. for (Iterator<Criteria> critIter = crits.iterator(); critIter.hasNext();) {
  10. Criteria conjunct = critIter.next();
  11. List<Expression> additionalRequired = new LinkedList<Expression>();
  12. AggregateSymbolCollectorVisitor.getAggregates(conjunct, additionalRequired, additionalRequired, additionalRequired, null, groupBy!=null?groupBy.getSymbols():null);
  13. ReferenceReplacementVisitor emv = new ReferenceReplacementVisitor(refs);
  14. DeepPostOrderNavigator.doVisit(conjunct, emv);
  15. if (!emv.replacedAny) {
  16. //if not correlated, then leave it on the query
  17. critIter.remove();
  18. if (where) {
  19. plannedResult.query.setCriteria(Criteria.combineCriteria(plannedResult.query.getCriteria(), conjunct));
  20. } else {
  21. plannedResult.query.setHaving(Criteria.combineCriteria(plannedResult.query.getHaving(), conjunct));
  22. }
  23. } else {
  24. requiredExpressions.addAll(additionalRequired);
  25. }
  26. }
  27. RuleChooseJoinStrategy.separateCriteria(leftGroups, rightGroups, plannedResult.leftExpressions, plannedResult.rightExpressions, crits, plannedResult.nonEquiJoinCriteria);
  28. }

代码示例来源:origin: teiid/teiid

  1. private void processCriteria(Collection<GroupSymbol> leftGroups,
  2. PlannedResult plannedResult, List<GroupSymbol> rightGroups,
  3. Set<Expression> requiredExpressions, final SymbolMap refs,
  4. Criteria joinCriteria, GroupBy groupBy, boolean where) {
  5. if (joinCriteria == null) {
  6. return;
  7. }
  8. List<Criteria> crits = Criteria.separateCriteriaByAnd((Criteria)joinCriteria.clone());
  9. for (Iterator<Criteria> critIter = crits.iterator(); critIter.hasNext();) {
  10. Criteria conjunct = critIter.next();
  11. List<Expression> additionalRequired = new LinkedList<Expression>();
  12. AggregateSymbolCollectorVisitor.getAggregates(conjunct, additionalRequired, additionalRequired, additionalRequired, null, groupBy!=null?groupBy.getSymbols():null);
  13. ReferenceReplacementVisitor emv = new ReferenceReplacementVisitor(refs);
  14. DeepPostOrderNavigator.doVisit(conjunct, emv);
  15. if (!emv.replacedAny) {
  16. //if not correlated, then leave it on the query
  17. critIter.remove();
  18. if (where) {
  19. plannedResult.query.setCriteria(Criteria.combineCriteria(plannedResult.query.getCriteria(), conjunct));
  20. } else {
  21. plannedResult.query.setHaving(Criteria.combineCriteria(plannedResult.query.getHaving(), conjunct));
  22. }
  23. } else {
  24. requiredExpressions.addAll(additionalRequired);
  25. }
  26. }
  27. RuleChooseJoinStrategy.separateCriteria(leftGroups, rightGroups, plannedResult.leftExpressions, plannedResult.rightExpressions, crits, plannedResult.nonEquiJoinCriteria);
  28. }

代码示例来源:origin: org.jboss.teiid/teiid-engine

  1. /**
  2. * Constructs an instance of this class given all the clauses
  3. * @param select SELECT clause
  4. * @param from FROM clause
  5. * @param criteria WHERE clause
  6. * @param groupBy GROUP BY clause
  7. * @param having HAVING clause
  8. * @param orderBy ORDER BY clause
  9. * @param option OPTION clause
  10. */
  11. public Query( Select select, From from, Criteria criteria, GroupBy groupBy, Criteria having, OrderBy orderBy, Option option ) {
  12. super();
  13. setSelect( select );
  14. setFrom( from );
  15. setCriteria( criteria );
  16. setGroupBy( groupBy );
  17. setHaving( having );
  18. setOrderBy( orderBy );
  19. setOption( option );
  20. }

代码示例来源:origin: teiid/teiid

  1. /**
  2. * Constructs an instance of this class given all the clauses
  3. * @param select SELECT clause
  4. * @param from FROM clause
  5. * @param criteria WHERE clause
  6. * @param groupBy GROUP BY clause
  7. * @param having HAVING clause
  8. * @param orderBy ORDER BY clause
  9. * @param option OPTION clause
  10. */
  11. public Query( Select select, From from, Criteria criteria, GroupBy groupBy, Criteria having, OrderBy orderBy, Option option ) {
  12. super();
  13. setSelect( select );
  14. setFrom( from );
  15. setCriteria( criteria );
  16. setGroupBy( groupBy );
  17. setHaving( having );
  18. setOrderBy( orderBy );
  19. setOption( option );
  20. }

代码示例来源:origin: org.teiid/teiid-engine

  1. /**
  2. * Constructs an instance of this class given all the clauses
  3. * @param select SELECT clause
  4. * @param from FROM clause
  5. * @param criteria WHERE clause
  6. * @param groupBy GROUP BY clause
  7. * @param having HAVING clause
  8. * @param orderBy ORDER BY clause
  9. * @param option OPTION clause
  10. */
  11. public Query( Select select, From from, Criteria criteria, GroupBy groupBy, Criteria having, OrderBy orderBy, Option option ) {
  12. super();
  13. setSelect( select );
  14. setFrom( from );
  15. setCriteria( criteria );
  16. setGroupBy( groupBy );
  17. setHaving( having );
  18. setOrderBy( orderBy );
  19. setOption( option );
  20. }

代码示例来源:origin: teiid/teiid

  1. @Test public void testQuery6() {
  2. Select select = new Select();
  3. select.addSymbol(new MultipleElementSymbol());
  4. From from = new From();
  5. from.addGroup(new GroupSymbol("m.g")); //$NON-NLS-1$
  6. CompareCriteria cc = new CompareCriteria(new ElementSymbol("e1"), CompareCriteria.EQ, new Constant(new Integer(5))); //$NON-NLS-1$
  7. GroupBy groupBy = new GroupBy();
  8. groupBy.addSymbol(new ElementSymbol("e1")); //$NON-NLS-1$
  9. CompareCriteria having = new CompareCriteria(new ElementSymbol("e1"), CompareCriteria.GT, new Constant(new Integer(0))); //$NON-NLS-1$
  10. Query query = new Query();
  11. query.setSelect(select);
  12. query.setFrom(from);
  13. query.setCriteria(cc);
  14. query.setGroupBy(groupBy);
  15. query.setHaving(having);
  16. helpTest(query, "SELECT * FROM m.g WHERE e1 = 5 GROUP BY e1 HAVING e1 > 0"); //$NON-NLS-1$
  17. }

代码示例来源:origin: teiid/teiid

  1. @Test public void testQuery4() {
  2. Select select = new Select();
  3. select.addSymbol(new MultipleElementSymbol());
  4. From from = new From();
  5. from.addGroup(new GroupSymbol("m.g")); //$NON-NLS-1$
  6. CompareCriteria cc = new CompareCriteria(new ElementSymbol("e1"), CompareCriteria.EQ, new Constant(new Integer(5))); //$NON-NLS-1$
  7. CompareCriteria having = new CompareCriteria(new ElementSymbol("e1"), CompareCriteria.GT, new Constant(new Integer(0))); //$NON-NLS-1$
  8. OrderBy orderBy = new OrderBy();
  9. orderBy.addVariable(new ElementSymbol("e1")); //$NON-NLS-1$
  10. Query query = new Query();
  11. query.setSelect(select);
  12. query.setFrom(from);
  13. query.setCriteria(cc);
  14. query.setHaving(having);
  15. query.setOrderBy(orderBy);
  16. helpTest(query, "SELECT * FROM m.g WHERE e1 = 5 HAVING e1 > 0 ORDER BY e1"); //$NON-NLS-1$
  17. }

代码示例来源:origin: org.teiid/teiid-engine

  1. query.setCriteria(criteria);
  2. query.setGroupBy(groupBy);
  3. query.setHaving(having);

代码示例来源:origin: teiid/teiid

  1. @Test public void testQuery2() {
  2. Select select = new Select();
  3. select.addSymbol(new MultipleElementSymbol());
  4. From from = new From();
  5. from.addGroup(new GroupSymbol("m.g")); //$NON-NLS-1$
  6. CompareCriteria cc = new CompareCriteria(new ElementSymbol("e1"), CompareCriteria.EQ, new Constant(new Integer(5))); //$NON-NLS-1$
  7. GroupBy groupBy = new GroupBy();
  8. groupBy.addSymbol(new ElementSymbol("e1")); //$NON-NLS-1$
  9. CompareCriteria having = new CompareCriteria(new ElementSymbol("e1"), CompareCriteria.GT, new Constant(new Integer(0))); //$NON-NLS-1$
  10. OrderBy orderBy = new OrderBy();
  11. orderBy.addVariable(new ElementSymbol("e1")); //$NON-NLS-1$
  12. Query query = new Query();
  13. query.setSelect(select);
  14. query.setFrom(from);
  15. query.setCriteria(cc);
  16. query.setGroupBy(groupBy);
  17. query.setHaving(having);
  18. query.setOrderBy(orderBy);
  19. helpTest(query, "SELECT * FROM m.g WHERE e1 = 5 GROUP BY e1 HAVING e1 > 0 ORDER BY e1"); //$NON-NLS-1$
  20. }

代码示例来源:origin: teiid/teiid

  1. @Test public void testQuery7() {
  2. Select select = new Select();
  3. select.addSymbol(new MultipleElementSymbol());
  4. From from = new From();
  5. from.addGroup(new GroupSymbol("m.g")); //$NON-NLS-1$
  6. CompareCriteria cc = new CompareCriteria(new ElementSymbol("e1"), CompareCriteria.EQ, new Constant(new Integer(5))); //$NON-NLS-1$
  7. GroupBy groupBy = new GroupBy();
  8. groupBy.addSymbol(new ElementSymbol("e1")); //$NON-NLS-1$
  9. CompareCriteria having = new CompareCriteria(new ElementSymbol("e1"), CompareCriteria.GT, new Constant(new Integer(0))); //$NON-NLS-1$
  10. OrderBy orderBy = new OrderBy();
  11. orderBy.addVariable(new ElementSymbol("e1")); //$NON-NLS-1$
  12. Query query = new Query();
  13. query.setSelect(select);
  14. query.setFrom(from);
  15. query.setCriteria(cc);
  16. query.setGroupBy(groupBy);
  17. query.setHaving(having);
  18. query.setOrderBy(orderBy);
  19. helpTest(query, "SELECT * FROM m.g WHERE e1 = 5 GROUP BY e1 HAVING e1 > 0 ORDER BY e1"); //$NON-NLS-1$
  20. }

代码示例来源:origin: teiid/teiid

  1. query.setFrom(from);
  2. query.setGroupBy(groupBy);
  3. query.setHaving(having);

代码示例来源:origin: teiid/teiid

  1. /** SELECT a FROM m.g GROUP BY b, c HAVING b=5*/
  2. @Test public void testGroupByHaving() {
  3. GroupSymbol g = new GroupSymbol("m.g"); //$NON-NLS-1$
  4. From from = new From();
  5. from.addGroup(g);
  6. Select select = new Select();
  7. select.addSymbol(new ElementSymbol("a", false)); //$NON-NLS-1$
  8. GroupBy groupBy = new GroupBy();
  9. groupBy.addSymbol(new ElementSymbol("b", false)); //$NON-NLS-1$
  10. groupBy.addSymbol(new ElementSymbol("c", false)); //$NON-NLS-1$
  11. CompareCriteria having = new CompareCriteria(new ElementSymbol("b", false), CompareCriteria.EQ, new Constant(new Integer(5))); //$NON-NLS-1$
  12. Query query = new Query();
  13. query.setSelect(select);
  14. query.setFrom(from);
  15. query.setGroupBy(groupBy);
  16. query.setHaving(having);
  17. helpTest("SELECT a FROM m.g GROUP BY b, c HAVING b=5", //$NON-NLS-1$
  18. "SELECT a FROM m.g GROUP BY b, c HAVING b = 5", //$NON-NLS-1$
  19. query);
  20. }

代码示例来源:origin: teiid/teiid

  1. @Test public void testQuery3() {
  2. Select select = new Select();
  3. select.addSymbol(new MultipleElementSymbol());
  4. From from = new From();
  5. from.addGroup(new GroupSymbol("m.g")); //$NON-NLS-1$
  6. GroupBy groupBy = new GroupBy();
  7. groupBy.addSymbol(new ElementSymbol("e1")); //$NON-NLS-1$
  8. CompareCriteria having = new CompareCriteria(new ElementSymbol("e1"), CompareCriteria.GT, new Constant(new Integer(0))); //$NON-NLS-1$
  9. OrderBy orderBy = new OrderBy();
  10. orderBy.addVariable(new ElementSymbol("e1")); //$NON-NLS-1$
  11. Query query = new Query();
  12. query.setSelect(select);
  13. query.setFrom(from);
  14. query.setGroupBy(groupBy);
  15. query.setHaving(having);
  16. query.setOrderBy(orderBy);
  17. helpTest(query, "SELECT * FROM m.g GROUP BY e1 HAVING e1 > 0 ORDER BY e1"); //$NON-NLS-1$
  18. }

代码示例来源:origin: teiid/teiid

  1. /** SELECT a FROM m.g GROUP BY a HAVING COUNT(b) > 0*/
  2. @Test public void testHavingFunction() {
  3. GroupSymbol g = new GroupSymbol("m.g"); //$NON-NLS-1$
  4. From from = new From();
  5. from.addGroup(g);
  6. Select select = new Select();
  7. select.addSymbol(new ElementSymbol("a")); //$NON-NLS-1$
  8. GroupBy groupBy = new GroupBy();
  9. groupBy.addSymbol(new ElementSymbol("a")); //$NON-NLS-1$
  10. Criteria having = new CompareCriteria(
  11. new AggregateSymbol("COUNT", false, new ElementSymbol("b", false)), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
  12. CompareCriteria.GT,
  13. new Constant(new Integer(0)) );
  14. Query query = new Query();
  15. query.setSelect(select);
  16. query.setFrom(from);
  17. query.setGroupBy(groupBy);
  18. query.setHaving(having);
  19. helpTest("SELECT a FROM m.g GROUP BY a HAVING COUNT(b) > 0", //$NON-NLS-1$
  20. "SELECT a FROM m.g GROUP BY a HAVING COUNT(b) > 0", //$NON-NLS-1$
  21. query);
  22. }

代码示例来源:origin: org.teiid/teiid-engine

  1. copy.setHaving( (Criteria) having.clone());

代码示例来源:origin: teiid/teiid

  1. copy.setHaving( (Criteria) having.clone());

代码示例来源:origin: org.jboss.teiid/teiid-engine

  1. copy.setHaving( (Criteria) having.clone());

相关文章