SELECT DISTINCT FIRST_VALUE(`id`) OVER `win` AS `id`, `user_id`,
FIRST_VALUE(`score`) OVER `win` AS `score`,
FIRST_VALUE(`user_name`) OVER `win` AS `user_name`
FROM `game_api_score`
WINDOW `win` AS (PARTITION BY `user_id` ORDER BY `score` DESC)
не понятно, какой влияние оказывает третья таблица на вторуюНапрямую никакого. У вас INNER JOIN `wp_company_rates` и `wp_term_relationships`, поэтому естественно, что в финальную выборку попадут только те строки, которые совмещаются по условию JOIN'a. Если после RIGHT JOIN вы получили в объединённой строке `wp_company_rates`.`post_id` равное NULL, то, естественно, в INNER JOIN эта строка не войдёт.
x OR y OR z AND q
будет выполняться как x OR y OR (z AND q)
, так как приоритет у AND выше, чем у OR.SELECT `time`, `ticker`, `price`, `volume`,
`icon`, `tf`, `figure`, `figure_text`
FROM `figure`
WHERE `figure` IN ('vklin', 'nklin', 'doublev', 'doubled', 'mflag', 'bflag', 'flag')
AND `tf` IN ('1h', '4h', '1d')
UNION SELECT `time`, `ticker`, `price`, `volume`,
`icon`, `tf`, `situation`, `situation_text`
FROM `levels`
WHERE `situation` = 'resistance'
AND `tf` IN ('1h', '4h', '1d')
SELECT `p`.*,
COUNT(`op`.`id`) AS `ordersCount`,
IFNULL(SUM(`op`.`count`), 0) AS `countOrdersCount`
IFNULL(SUM(`op`.`price` * `op`.`count`), 0) AS `ordersSum`
FROM `products` AS `p`
LEFT JOIN `orders_products` AS `op` ON `op`.`item_id` = `p`.`id`
LEFT JOIN `orders` AS `o` ON `o`.`id` = `op`.`order_id`
AND `o`.`date` > '2020-01-01'
AND `o`.`status` != 2
WHERE `p`.`active` = '1'
GROUP BY `p`.`id`
ORDER BY `p`.`id` DESC
LIMIT 0, 25
CREATE TABLE "table" (
field1 VARCHAR(16),
field2 INT GENERATED ALWAYS AS (
ARRAY_POSITION(ARRAY['value1', 'value2', 'value3', 'value4'], field1::TEXT)
) STORED
);
CREATE TABLE "table" (
field1 VARCHAR(16),
field2 INT GENERATED ALWAYS AS (
(ARRAY[0, 11, 22, 44])[ARRAY_POSITION(ARRAY['value1', 'value2', 'value3', 'value4'], field1::TEXT)]
) STORED
);
CREATE TABLE "table" (
field1 VARCHAR(16),
field2 INT GENERATED ALWAYS AS (
CASE field1
WHEN 'value1' THEN 0
WHEN 'value2' THEN 11
WHEN 'value3' THEN 22
ELSE 44
END
) STORED
);