MySQL — архив 2022-06-13 PM

|
sharp_0000ff 2022-06-13 12:23:32
Всем привет, подскаажите плиз, что я делю не так, только начал изучаать sql, но что-то вообще не хочет голова дружить с ним.
У меня есть 2 таблицы:
table1
code_id, x, y, theta
table2
date, name, order, code_id, x, y, theta

Я хочу посчитать кол-во code_id, которые содержат данные, но бывает, что code_id = -1, и такие тоже надо учитывать, как это записать в 1 запрос? и можно ли
SELECT count(code_id) as with_code_id, order FROM table2 GROUP BY order;
SELECT count(code_id) as without_code_id, order FROM table2 WHERE code_id2 = -1 GROUP BY order;

После мне нужна разница между координтами из 2 таблиц по X, Y
CREATE TABLE diff SELECT name, order, x — x as X, y — y as Y FROM table2, table1 WHERE code_id = code_id;

После мне надо посчитать кол-во точек в опредленном диапазоне по order’ам, и тут у меня возникла проблема
SELECT name, order, COUNT(*) FROM diff WHERE X AND Y BETWEEN -0.1 AND 0.1 GROUP BY name AND order;
Ошибка:
SELECT list is not in GROUP BY clause and contains nonaggregated column ‘bd.diff.name’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
Что не так я делаю, если убрать name или order из запроса, всё нормально работает, но мне надо 2, чтобы групироваалось по order, и так же для каждого выводилось name

Так же мне надо посчитать кол-во точек которые идут в 5 разных диапаазонах, и я вообще не представляю как это сделать, подскажите плиз.

Reznichenko_Artem 2022-06-13 12:45:21
sharp_0000ff 2022-06-13 12:23:32
Всем привет, подскаажите плиз, что я делю не так, только начал изучаать sql, но что-то вообще не хочет голова дружить с ним.
У меня есть 2 таблицы:
table1
code_id, x, y, theta
table2
date, name, order, code_id, x, y, theta

Я хочу посчитать кол-во code_id, которые содержат данные, но бывает, что code_id = -1, и такие тоже надо учитывать, как это записать в 1 запрос? и можно ли
SELECT count(code_id) as with_code_id, order FROM table2 GROUP BY order;
SELECT count(code_id) as without_code_id, order FROM table2 WHERE code_id2 = -1 GROUP BY order;

После мне нужна разница между координтами из 2 таблиц по X, Y
CREATE TABLE diff SELECT name, order, x — x as X, y — y as Y FROM table2, table1 WHERE code_id = code_id;

После мне надо посчитать кол-во точек в опредленном диапазоне по order’ам, и тут у меня возникла проблема
SELECT name, order, COUNT(*) FROM diff WHERE X AND Y BETWEEN -0.1 AND 0.1 GROUP BY name AND order;
Ошибка:
SELECT list is not in GROUP BY clause and contains nonaggregated column ‘bd.diff.name’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
Что не так я делаю, если убрать name или order из запроса, всё нормально работает, но мне надо 2, чтобы групироваалось по order, и так же для каждого выводилось name

Так же мне надо посчитать кол-во точек которые идут в 5 разных диапаазонах, и я вообще не представляю как это сделать, подскажите плиз.

https://russianblogs.com/article/76441177163/

MySQL отключить ONLY_FULL_GROUP_BY, временно устранить ошибку (sql_mode = only_full_group_by) — Русские БлогиRussianblogs
MySQL отключить ONLY_FULL_GROUP_BY, временно устранить ошибку (sql_mode = only_full_group_by), Русские Блоги, лучший сайт для обмена техническими статьями программиста.
Slava Rozhnev 🙀 2022-06-13 16:19:30
Reznichenko_Artem 2022-06-13 12:45:21
https://russianblogs.com/article/76441177163/

Плохая идея

Reznichenko_Artem 2022-06-13 16:21:23
Slava Rozhnev 🙀 2022-06-13 16:19:30
Плохая идея

Согласимся

MasterZiv 2022-06-13 17:58:35
А при чем тут SQL lite
vikatuman 2022-06-13 17:59:12
Это бд, поставляемая прогой по умолчанию. Не обращайте внимания
MasterZiv 2022-06-13 18:00:38
vikatuman 2022-06-13 17:59:12
Это бд, поставляемая прогой по умолчанию. Не обращайте внимания

Не могу я не обращать внимание

|