версиями 18.14.12 new и old 1.1.542
                  
                  
                  new:
                  
                  
                  SELECT max(adId) AS maxAdId
                  
                  
                  FROM d_events
                  
                  
                  WHERE date > '2020-01-01'
                  
                  
                  
                  
                  
                  ┌─maxAdId─┐
                  
                  
                  │       0 │
                  
                  
                  └─────────┘
                  
                  
                  
                  
                  
                  1 rows in set. Elapsed: 0.013 sec.
                  
                  
                  
                  
                  
                  old:
                  
                  
                  
                  
                  
                  SELECT max(adId) AS maxAdId
                  
                  
                  FROM d_events
                  
                  
                  WHERE date > '2020-01-01'
                  
                  
                  
                  
                  
                  Ok.
                  
                  
                  
                  
                  
                  0 rows in set. Elapsed: 0.007 sec.
                  
                  
                  
                  
                  
                  Теперь всегда выдает резултат 0 если нету данных?
                  
                  
                
# cat /etc/clickhouse-server/conf.d/empty_result_instead_of_zero.xml <?xml version="1.0"?> <yandex> <profiles> <default> <!-- 1.1.54362 We are not ready for aggregating functions to return 0 insted of an empty set --> <empty_result_for_aggregation_by_empty_set>1</empty_result_for_aggregation_by_empty_set> </default> </profiles> </yandex> Релиз ClickHouse 1.1.54362, 2018-03-11 Агрегация без GROUP BY по пустому множеству (как например, SELECT count(*) FROM table WHERE 0) теперь возвращает результат из одной строки с нулевыми значениями агрегатных функций, в соответствии со стандартом SQL. Вы можете вернуть старое поведение (возвращать пустой результат), выставив настройку empty_result_for_aggregation_by_empty_set в значение 1.
Обсуждают сегодня