Size: a a a

2020 December 29

ВС

Владислав Субботин... in MySQL
Задай вопрос нормально
источник

G

Grigorij in MySQL
А что там скрещивать то? Джойни и подсчитывай)
источник

IZ

Ilia Zviagin in MySQL
Jury
господа, кто-то знает, как скрестить ежа с ужом (INNER JOIN и COUNT())?
Легко.
источник

J

Jury in MySQL
сейчас запрос имеет примерно такой вид. Я в SQL не силён, по-этому и обращаюсь за советом.

Но, суть, например, в следующем:
project = 123 в этом запросе выдаёт 16000 просмотров (views), но если я из таблицы с просмотрами выберу WHERE project = 123, то результат будет едвали больше сотни просмотров
источник

IZ

Ilia Zviagin in MySQL
Jury
сейчас запрос имеет примерно такой вид. Я в SQL не силён, по-этому и обращаюсь за советом.

Но, суть, например, в следующем:
project = 123 в этом запросе выдаёт 16000 просмотров (views), но если я из таблицы с просмотрами выберу WHERE project = 123, то результат будет едвали больше сотни просмотров
Не JOIN-и один-ко-многим в такие запросы, и всё.
источник

IZ

Ilia Zviagin in MySQL
Jury
сейчас запрос имеет примерно такой вид. Я в SQL не силён, по-этому и обращаюсь за советом.

Но, суть, например, в следующем:
project = 123 в этом запросе выдаёт 16000 просмотров (views), но если я из таблицы с просмотрами выберу WHERE project = 123, то результат будет едвали больше сотни просмотров
Я подозреваю, тут  это — секторс s2, s3 и  типы работ.
источник

J

Jury in MySQL
отрасли. Например, если s2 — энергетика, то s3 — АЭС
источник

IZ

Ilia Zviagin in MySQL
Jury
сейчас запрос имеет примерно такой вид. Я в SQL не силён, по-этому и обращаюсь за советом.

Но, суть, например, в следующем:
project = 123 в этом запросе выдаёт 16000 просмотров (views), но если я из таблицы с просмотрами выберу WHERE project = 123, то результат будет едвали больше сотни просмотров
Причём, если ты jOINишь один-ко-многим несколько таблиц, ты должен JOIN-ить их самих друг с другом ещё, если это не сделатЬ, там будет локальное декартово произведение генерироваться, каждый с каждым (из одного детейла и из другого), если это вообще невозможно — то такие таблицы вообще нельзя JOINить одновременно
источник

J

Jury in MySQL
ага, примерно понял. Спасибо за совет! Тогда не буду городить мудрёные запросы, лучше в другом месте переделаю логику.
источник

РА

Ринат А in MySQL
SELECT * FROM cars
JOIN color ON color.cars_id = cars.id
ORDER BY cars.rating DESC limit 5 OFFSET 0 ;

Подскажите, данный запрос у меня занимает 20 секунд. Если убираю join или order by, то занимает 1 секунду. Индексы везду проставил, куда копать?
источник

О

Ольга in MySQL
Добрый день.  Подскажите пожалуйста почему with rollup не срабатывает?
Хочу подсчитать сумму лайков в этой же таблице.
источник

О

Ольга in MySQL
источник

ВТ

Виктор Ткаченко... in MySQL
Ольга
Добрый день.  Подскажите пожалуйста почему with rollup не срабатывает?
Хочу подсчитать сумму лайков в этой же таблице.
Каким образом система должна понять, что нужно сделать с результатом корреллированого подзапроса при ROLLUP?
Сложить, подсчитать среднее или еще что?
источник

О

Ольга in MySQL
Виктор Ткаченко
Каким образом система должна понять, что нужно сделать с результатом корреллированого подзапроса при ROLLUP?
Сложить, подсчитать среднее или еще что?
средняя не нужна. из данного итога подзапросов, нужно вывести итоговую 11 строку с суммой итого по столбцу likes
источник

ВТ

Виктор Ткаченко... in MySQL
Ольга
средняя не нужна. из данного итога подзапросов, нужно вывести итоговую 11 строку с суммой итого по столбцу likes
Ну вот SUM(likes) и указывайте.

Но в запросе проблем гораздо больше
источник

DE

Denis Efremov in MySQL
Mikhaile Serkheeve
Кто знает как в кнексе реализовать:
 .where( 'DATE(date)', '<=', 'CURDATE()' )
Че в доках нет?
источник

О

Ольга in MySQL
SELECT SUM(likes) FROM (SELECT
   profiles.users_id,
   profiles.birthday,
   (SELECT COUNT(*) FROM VK_class.likes WHERE likes.users_id = profiles.users_id) AS likes
FROM
   VK_class.profiles
GROUP BY profiles.users_id, profiles.birthday
ORDER BY profiles.birthday DESC LIMIT 10)t;
источник

О

Ольга in MySQL
вдруг кому-нибудь пригодится
источник

ВТ

Виктор Ткаченко... in MySQL
1. ROLLUP даст несколько уровней подитогов (в зависимости от группировки).
2. LIMIT будет налагаться на итоговый результат с подитогами, то есть в LIMIT 10 могут/будут входить и подитоги
источник

ВТ

Виктор Ткаченко... in MySQL
Ольга
SELECT SUM(likes) FROM (SELECT
   profiles.users_id,
   profiles.birthday,
   (SELECT COUNT(*) FROM VK_class.likes WHERE likes.users_id = profiles.users_id) AS likes
FROM
   VK_class.profiles
GROUP BY profiles.users_id, profiles.birthday
ORDER BY profiles.birthday DESC LIMIT 10)t;
Результат запроса может быть недетерминирован из-за такой сортировки
источник