-- SELECT 'IN empty set not in WHERE clause',avg(number IN (SELECT toUInt64(1) WHERE 0)) FROM system.numbers;
-- SELECT 'IN empty set not in WHERE clause',avg(number IN (SELECT toUInt64(1) WHERE 0) AND number > 1) FROM system.numbers;
-- SELECT 'IN non-empty set not in WHERE clause',avg(number IN (SELECT toUInt64(1) WHERE 1)) FROM (SELECT number FROM system.numbers limit 10);
-- SELECT 'NOT IN empty set not in WHERE clause',avg(number NOT IN (SELECT toUInt64(1) WHERE 0)) FROM (SELECT number FROM system.numbers LIMIT 10);
SELECT'multiple sets IN empty set OR IN non-empty set',count()FROM(SELECTnumberFROMsystem.numbersLIMIT10)WHEREnumberIN(SELECTtoUInt64(1)WHERE0)ORnumberIN(SELECTtoUInt64(1)WHERE1);
SELECT'multiple sets IN empty set OR NOT IN non-empty set',count()FROM(SELECTnumberFROMsystem.numbersLIMIT10)WHEREnumberIN(SELECTtoUInt64(1)WHERE0)ORnumberNOTIN(SELECTtoUInt64(1)WHERE1);
SELECT'multiple sets NOT IN empty set AND IN non-empty set',count()FROM(SELECTnumberFROMsystem.numbersLIMIT10)WHEREnumberNOTIN(SELECTtoUInt64(1)WHERE0)ANDnumberIN(SELECTtoUInt64(1)WHERE1);
...
...
@@ -23,7 +18,5 @@ SELECT 'multiple sets INNER JOIN empty set AND IN empty set',count() FROM system
SELECT'multiple sets INNER JOIN empty set AND IN non-empty set',count()FROM(SELECTnumberFROMsystem.numbersLIMIT10)t1INNERJOIN(SELECTtoUInt64(1)ASxWHERE0)ONt1.number=xWHEREt1.numberIN(SELECTtoUInt64(1)WHERE1);
SELECT'multiple sets INNER JOIN non-empty set AND IN non-empty set',count()FROM(SELECTnumberFROMsystem.numbersLIMIT10)t1INNERJOIN(SELECTtoUInt64(1)ASxWHERE1)ONt1.number=xWHEREt1.numberIN(SELECTtoUInt64(1)WHERE1);
-- SELECT number FROM system.numbers WHERE NOT ignore(number IN (SELECT toUInt64(1) WHERE 0));
SELECT'IN empty set equals 0',count()FROMnumbers(10)WHERE(numberIN(SELECTtoUInt64(1)WHERE0))=0;
SELECT'IN empty set sum if',sum(if(numberIN(SELECTtoUInt64(1)WHERE0),2,1))FROMnumbers(10);