Поддержка SQL

Содержание раздела
  1. Примеры неподдерживаемых запросов
    1. AVG
    2. CROSS JOIN
    3. FULL JOIN
    4. JOIN для трех таблиц
    5. JOIN с подзапросом
    6. RIGHT JOIN

В SELECT-запросах к данным можно использовать функции, описанные в таблице ниже.

СУБД хранилища имеют ограничения на использование некоторых функций в запросах, вызванные особенностями этих СУБД. Наиболее полный синтаксис запросов доступен в ADB и ADP.

Функция Доступна в ADB Доступна в ADQM Доступна в ADG Доступна в ADP
ABS + + + +
ACOS + + +
ASIN + + +
ATAN + + +
ATAN2 + +
AVG
BIT_AND + +
BIT_OR + +
CASE + + + +
CAST + + + +
CBRT + +
CEIL +
для аргумента типа FLOAT
+ +
для аргумента типа FLOAT
CEILING +
для аргумента типа FLOAT
+ +
для аргумента типа FLOAT
CHAR
COALESCE + + + +
COS + + +
COUNT + + + +
CROSS JOIN + + +
DEGREES + +
EXCEPT
EXP + + +
FLOOR +
для аргумента типа FLOAT
+ +
для аргумента типа FLOAT
FULL JOIN + +
при соединении по ключам шардирования
+
GREATEST
HEX
IFNULL
INTERSECT
JOIN для трех таблиц + + +
JOIN с подзапросом + + +
LEAST
LENGTH
LIKE + + + +
LN + + +
LOG
LOWER + + + +
MAX + + + +
MIN + + + +
MOD + +
NULLIF + + + +
OCTET_LENGTH
PI
POSITION + +
POWER + + +
PRINTF
QUOTE
RADIANS + +
RANDOM
REPLACE + + + +
RIGHT JOIN + + +
ROUND +
для аргумента типа FLOAT
+ + +
для аргумента типа FLOAT
SIGN +
для аргумента типа FLOAT
+
для аргумента типа FLOAT
SIN + + +
SQRT + + +
SUBSTRING + + +
SUM + + + +
TAN + + +
TRIM + + + +
TRUNC
TYPEOF
UNION
UPPER + + + +

Примеры неподдерживаемых запросов

AVG

SELECT AVG(product_units) FROM sales.sales

CROSS JOIN

SELECT *
FROM sales.sales AS s
CROSS JOIN sales.stores AS st
ORDER BY s.store_id, st.category
LIMIT 5
DATASOURCE_TYPE = 'ADQM'

FULL JOIN

SELECT *
FROM sales.sales AS s
FULL JOIN sales.stores AS st
ON s.store_id = st.id
ORDER BY s.store_id
LIMIT 5
DATASOURCE_TYPE = 'ADG'

JOIN для трех таблиц

SELECT *
FROM demo.territories AS t
LEFT JOIN demo.employee_territories AS et
ON t.territory_id = et.territory_id
LEFT JOIN demo.employees AS e
ON t.territory_id = e.territory_id
WHERE e.last_name is NOT NULL
ORDER BY t.territory_id
DATASOURCE_TYPE = 'ADQM'

JOIN с подзапросом

SELECT *
FROM sales.sales AS s
INNER JOIN
(SELECT * FROM sales.stores) AS st
ON s.store_id = st.id
ORDER BY s.store_id
DATASOURCE_TYPE = 'ADQM'

RIGHT JOIN

SELECT *
FROM sales.sales AS s
RIGHT JOIN sales.stores AS st
ON s.store_id = st.id
ORDER BY st.id
LIMIT 5
DATASOURCE_TYPE = 'ADG'