Но тут, внезапно возникает необходимость в отслеживании у пользователя текущего заказа, т.к. заказ и корзина в условиях текущего приложения по сути одно и то же, только заказ может быть активным, либо нет.
Абстрагировавшись от всей теории разработки БД, выбираю самое простое решение ..
INSERT INTO test (a,b,c,d)
SELECT a,b,c,d
FROM JSON_TABLE(
CONCAT('[', REPLACE(REPLACE(@list, '(', '['), ')', ']'), ']'),
'$[*]' COLUMNS (
a INT PATH '$[0]',
b INT PATH '$[1]',
c INT PATH '$[2]',
d INT PATH '$[3]'
)
) jsontable
WITH
cte1 AS (
SELECT jsonb_build_object('name', users.name,
'value', comments.value,
'rating', comments.rating) single_user,
comments.order_id,
'comment' || ROW_NUMBER() OVER (PARTITION BY comments.order_id ORDER BY comments.id) num
FROM users
JOIN comments ON users.id = comments.user_id
),
cte2 AS (
SELECT jsonb_build_object('order_id', order_id) ||
jsonb_object_agg(num, single_user) single_order
FROM cte1
GROUP BY order_id
)
SELECT jsonb_agg(single_order) final_data
FROM cte2;
Какая будет скорость на каждом порту при одновременном тесте скорости на каждом устройстве?
SELECT name, `text`
FROM product
JOIN product_attribute USING (product_id)
JOIN attribute_description USING (attribute_id)
-- JOIN attribute USING (attribute_id) -- таблица в запросе не нужна
GROUP BY 1, 2
HAVING COUNT(*) > 1;
ORDER BY MAX(attribute_id)
HAVING COUNT(*) = 3
SELECT "Items"."itemId", sum(price) / sum( sum(price) ) OVER ()
FROM "Items"
INNER JOIN "Purchases" USING("itemId")
GROUP BY "Items"."itemId"
Столбец name из кодировки utf8mb3_general_ci в utfmb4_general_ci
Нужно потому что, в некоторых записях присутствуют некорректные символы.
Столбец name из кодировки utf8mb3_general_ci в utfmb4_general_ci
SELECT CASE WHEN [column] IS NULL
THEN 'sale'
WHEN CHARINDEX([column], '.') > 0
THEN LEFT([column], CHARINDEX([column], '.') - 1)
ELSE [column]
END AS [column]
FROM source_table;
как есть 2-я таблица с такимеже значениями только без .0 и без NULL . А мне в дальнейшем нужно сравнить эти 2 таблицы
SELECT *
FROM table1
JOIN table2 ON table1.[column] = CASE WHEN table2.[column] IS NULL
THEN 'sale'
WHEN CHARINDEX(table2.[column], '.') > 0
THEN LEFT(table2.[column], CHARINDEX(table2.[column], '.') - 1)
ELSE table2.[column]
END;
SELECT article_id
FROM tag2article
GROUP BY article_id
HAVING !SUM(tag_id = 1)
SUM(tag_id = 2) -- наличие тега 2 обязательно
SUM(tag_id IN (3,4)) -- наличие хотя бы одного из указанных тегов обязательно
!SUM(tag_id IN (5,6)) -- отсутствие любого из указанных тегов обязательно
SUM(tag_id IN (7,8)) = 1 -- обязательно наличие строго одного из двух указанных
Про IP показывается его провайдер и организация.
Можно ли использовать коммутатор для соединения интернета, роутера и видео.