Size: a a a

2021 August 30

H

HVV in MySQL
как получить только строки с максимальными значениями? в моем кокнретном примере их 3
источник

TG

Taras G. in MySQL
вы правы )) так и оказалось
источник

IZ

Ilia Zviagin in MySQL
Опять попытка мимо.
Строки с максимальными значениями чего?
источник

IZ

Ilia Zviagin in MySQL
Надо найти причину и потом исправлять.
А не пытаться применять все лекарства на свете.
Ну и ты пока кроме "ой у меня всё плохо" ничего нам не сказал.

включай slow query log, и далее по одному запросу оттуда бери, и смотри план. Лечи проблему.
Потом следующий запрос из slow query log, и так дальше.
Потом уменьши время для slow query log, и снова.
источник

G

Grigorij in MySQL
max() + group by name,
источник

H

HVV in MySQL
не разу не понятно
источник

G

Grigorij in MySQL
Ну погугли про группировки и функцию max(). Это прямо основы-основы
источник

G

Grigorij in MySQL
Минут 10 и разберёшся
источник

H

HVV in MySQL
с утра разбираюсь
источник

H

HVV in MySQL
как только я добавляю МАКС, все хана ошибка

SELECT project.name, MAX(TIMESTAMPDIFF(second, test.start_time, test.end_time)) as razn
FROM test JOIN project ON project.id = test.project_id
ORDER BY project.name, test.name
источник

G

Grigorij in MySQL
Потому, что ты не указал базе, по какому полю агрегировать
источник

G

Grigorij in MySQL
источник

G

Grigorij in MySQL
Тебе же нужно не самую большу вообще, а самую большую в разрезе какого то поля, по которому нужно группиовать
источник

H

HVV in MySQL
я понимаю как это сделать с каким то столбцом, макс (столбец), но у меня нет столюца в том то и дело у меня цифры это разница
TIMESTAMPDIFF(second, test.start_time, test.end_time)
и вот как только я пытаюсь взять МАКСИМУМ отсюда тут начинаются проблемы
источник

G

Grigorij in MySQL
Да нет тут никаких проблем, так можно делать))
источник

G

Grigorij in MySQL
Вот я ссылку на sql_group_by давал. там описано всё
источник

L

LiFeAiR in MySQL
пытался начало интервала и конец интервала вычислить
CREATE TEMPORARY TABLE mysql.t (
   t INTEGER,
   s INTEGER
);
INSERT INTO mysql.t
SELECT * FROM
(
SELECT 0 AS t, 0 AS s
UNION ALL
SELECT 5, 1
UNION ALL
SELECT 12, 0
UNION ALL
SELECT 15, 1
UNION ALL
SELECT 21, 0
UNION ALL
SELECT 34, 1
UNION ALL
SELECT 45, 0
) t;
SELECT SUM(e - b)
   FROM
(SELECT t1.t AS b, MIN(t0.t) AS e
FROM mysql.t AS t1
LEFT JOIN mysql.t AS t0 ON t1.t < t0.t AND t0.s = 0
WHERE t1.s = 1
GROUP BY t1.t) r


но проще конечно это
SELECT SUM(CASE WHEN t.s = 1 THEN -1 * t.t ELSE t.t end) FROM mysql.t
источник

A

Art in MySQL
👍
источник

D

Dima in MySQL
Всем привет. У меня есть таблица где хранятся доменные имена. Данная таблица будет постоянно обновляться.  Доменные имена только уникальные. И вот возник вопрос, при добавлении новых доменных имен в одном запросе, уже могут быть дубликаты и выполнение прервется. Если делать на каждый новый домен один запрос, занимает много времени, так как новых записей может быть сотни тысяч. Как лучше поступить в данной ситуации?
источник

G

Grigorij in MySQL
on dublicate key update можешь попробовать.
источник