Мне нужно найти запись на который у пользователя где у пользователя 1 накопится допустим 30 баллов, это запись id=5.
WITH cte AS (
SELECT *, SUM(point) OVER (ORDER BY point_lifetime) cum_sum
FROM tablename
WHERE user_id = 1 -- у пользователя 1
)
SELECT *
FROM cte
WHERE cum_sum >= 30 -- накопится 30 баллов
ORDER BY point_lifetime LIMIT 1;
SELECT * FROM table1 LEFT JOIN table2 USING (column)
UNOIN ALL
SELECT * FROM table1 RIGHT JOIN table2 USING (column) WHERE table1.column IS NULL
SELECT *
FROM (
SELECT DISTINCT column FROM table1
UNION ALL
SELECT DISTINCT column FROM table2
) AS table0
LEFT JOIN table1 USING (column)
LEFT JOIN table2 USING (column)
Если в ячейку
Если в ячейку типа TEXT не влазят данные, MySQL автоматически увеличит её до необходимого размера или выдаст исключение?
Как сделать "резиновую" ячейку в таблице?
WHERE CONV(LEFT(HEX('$entered_hash'), 40), 16, 10) = correct_hash
WHERE '{value1}' = '{value2}' OR '{value1}' LIKE '{value2}%'
первое условие заведомо лишнее (ведь если оно выполняется, то и второе тоже выполняется). Как составить ассоциацию squelize один к одному?
WITH
cte AS (
SELECT * ,
ROW_NUMBER() OVER (ORDER BY `date` DESC, id DESC) rn,
DENSE_RANK() OVER (ORDER BY `date` DESC, id DESC) dr
FROM `list`
WHERE user='1'
)
SELECT *
FROM cte
WHERE dr <= (
SELECT dr
FROM cte
WHERE rn = 25
)
Версия сервера: 5.6.51 - MySQL Community Server (GPL)
SELECT *
FROM `list`
WHERE user='1'
AND `date` >= (
SELECT `date`
FROM 'list'
WHERE user='1'
ORDER BY `date` DESC, id DESC LIMIT 24, 1
)
есть поле в таблице с JSON, в нем важен порядок ключей.
можно ли в промежуточную таблицу добавлять поле amount или это считается недопустимым?
SELECT DISTINCT
product_id,
size,
SUM(orders) OVER (PARTITION BY product_id, warehouse_id, size) AS orders,
FIRST_VALUE(stocks) OVER (PARTITION BY product_id, warehouse_id, size
ORDER BY `date` DESC) AS stocks,
warehouse_id
FROM stats
WHERE DATE(`date`) >= '2023-09-01'
AND DATE(`date`) <= '2023-09-04';
WITH RECURSIVE
cte AS (
SELECT *, LPAD(id, 10, '0') path
FROM comments
WHERE parent_id = 0
UNION ALL
SELECT comments.*, CONCAT(cte.path, LPAD(comments.id, 10, '0'))
FROM comments
JOIN cte ON cte.id = comments.parent_id
)
SELECT id, parent_id, content
FROM cte
ORDER BY path;
CREATE TRIGGER fff
BEFORE INSERT ON stats
FOR EACH ROW
SET NEW.column11 = (NEW.column1 + NEW.column2 + NEW.column3 + NEW.column4 + NEW.column5 + NEW.column6 + NEW.column7 + NEW.column8 + NEW.column9 + NEW.column10) / 10;
DELIMITER ;;
CREATE TRIGGER fff
BEFORE INSERT ON stats
FOR EACH ROW
BEGIN
SET NEW.column11 = (NEW.column1 + NEW.column2 + NEW.column3 + NEW.column4 + NEW.column5 + NEW.column6 + NEW.column7 + NEW.column8 + NEW.column9 + NEW.column10) / 10;
END;
;;
DELIMITER ;