Я разделил таблицу с помощью следующей команды в поле date
, и по умолчанию она была разбита на day
.
CREATE TABLE `sales.sales_txn_partition` PARTITION BY DateOfTxn CLUSTER BY SalesPersonID AS (SELECT * FROM `sales.sales_records` WHERE SalesDate IS NOT NULL)
Теперь я хочу фильтровать на основе year/month
в моем предложении WHERE
вместо записи полной даты. Возможно ли это, или мне нужно было бы создать новую секционированную таблицу для года / месяца отдельно?
Я использую следующую команду, ничего не работает
SELECT * FROM `sales.sales_txn_partition` WHERE DATE_TRUNC(EXTRACT(DATE FROM _PARTITIONTIME), MONTH) = 2018;
## Doesnt work: Query error: Unrecognized name: _PARTITIONTIME at [3:78]
SELECT * FROM `sales.sales_txn_partition` WHERE EXTRACT(YEAR from DateOfTxn)=2018;
## Works but scans the full table