Size: a a a

2021 February 27

MC

Max Chistyakov in sql_ninja
Max Chistyakov
а и b — какого типа?
а откуда такая задача появилась?
1) в ней странно то, что нужно делать сортировку по времени, тогда как склайт нет специального типа данных для времени. Сортировку можно сделать, представив время в виде INTEGER или REAL (поищите, как)
2) склайн не имеет явных способов, как выбрать только первое вхождение из набора. Например, в ansi sql можно бы сделать так:

create table t20210226 (dt, b, c);

insert into t20210226 (dt, b, c)
values (1, 'а', 'b')
, (3, 'b', 'a');

select distinct
t2.*
from t20210226 as t
, lateral (select * from t as t1 where t1.a = t.a and t1.b = t.b or t1.a = t.b and t1.b = t.a order by dt desc limit 1) as t2;

В SQL Server lateral заменяется на CROSS APPLY.
В склайт нет ни того, ни другого.
источник

MC

Max Chistyakov in sql_ninja
это можно сделать в склайт, но гораздо сложнее чем в полноценных RDBMS. Нужно пилить несколько подзапросов, и компоновать между собой. Поэтому подумайте, может для таких целей выбрать другую субд, или реализовать логику по более верхнем программном уровне
источник

n

noname.exe in sql_ninja
Бд до меня такую сделали(( приходится работать с тем что есть.
Хочу переписать логику на стороне приложения, надо данные как-нибудь вытащить и сохранить нормально.
источник

n

noname.exe in sql_ninja
В общем, понял, спасибо за помощь. Буду дальше думать.
источник
2021 February 28

L

Les in sql_ninja
noname.exe
Привет всем!
Может кто-нибудь помочь создать запрос в базу. Никак не могу сообразить. Есть база с полями date, src, dest

Записей очень много и они могут дублироваться по типу
27.02.2021 15:00, а, b
26.02.2021 17:30, b, a
****            , a, b
И тд
Обе эти записи эквивалентны.
Мне нужно выбрать только одну запись с самым поздней меткой времени.
не для sqlite задача. Она вообще графом решается или циклом, а цикл в sqlite только через тригер for each row, но, рекурсивно оно не работает. Так что выгружай данные и беги циклом на своем любимом ЯП
источник

L

Les in sql_ninja
noname.exe
Привет всем!
Может кто-нибудь помочь создать запрос в базу. Никак не могу сообразить. Есть база с полями date, src, dest

Записей очень много и они могут дублироваться по типу
27.02.2021 15:00, а, b
26.02.2021 17:30, b, a
****            , a, b
И тд
Обе эти записи эквивалентны.
Мне нужно выбрать только одну запись с самым поздней меткой времени.
можешь выгрузить таблицу в постгрес и решить на нем вот так:

create table ninja (ts timestamp default now(), one text, two text);
insert into ninja(one, two) values ('a', 'b');
select pg_sleep(1.5);
insert into ninja(one, two) values ('b', 'a');
select pg_sleep(1.5);
insert into ninja(one, two) values ('a', 'b');
select pg_sleep(1.5);
insert into ninja(one, two) values ('k', 'v');
create table ninja2 as select * from ninja where 1 = 0;
do
$$
declare r record;
begin
  for r in select * from ninja loop
       if exists (select 1 from ninja2 where r.two = one and r.one = two) then
           insert into ninja2 (ts, one, two) select r.ts, r.two, r.one ;
       else
           insert into ninja2 (ts, one, two) select r.ts, r.one, r.two;
       end if;
  end loop;
end
$$;

select max(ts), one, two from ninja2 group by 2,3;
источник

IK

Ivan Kuzmin in sql_ninja
noname.exe
Привет всем!
Может кто-нибудь помочь создать запрос в базу. Никак не могу сообразить. Есть база с полями date, src, dest

Записей очень много и они могут дублироваться по типу
27.02.2021 15:00, а, b
26.02.2021 17:30, b, a
****            , a, b
И тд
Обе эти записи эквивалентны.
Мне нужно выбрать только одну запись с самым поздней меткой времени.
Через оконные функции, row_number() пишут что есть в sqlite, поля src и dest склеить в одно упорядочив по возрастанию с помощью case when src>dest then src+'-'+dest else dest+'-'+src end это выражание в partition by, sort by date. Видится что как то так можно решить.
источник

A

Alex96 in sql_ninja
Здесь нельзя фото прикреплять?
источник

G

Gopneg in sql_ninja
Alex96
Здесь нельзя фото прикреплять?
/unrestrict@Gopnegbot
источник

G

GopoBot in sql_ninja
Сняты все ограничения: Ez Ex
источник

A

Alex96 in sql_ninja
Всем привет, нинзи . Постигаю sql. В таблице participants хочу сделать внешний ключ event_id ссылающийся на event_id из таблицы lessons. Но он ругается помогите плиз)
источник

MC

Max Chistyakov in sql_ninja
Хм, в SQL Server на таблице-справочнике поле для внешнего ключа индексируется автоматически... в MySQL нет, что-ли
источник

MC

Max Chistyakov in sql_ninja
Alex96
Всем привет, нинзи . Постигаю sql. В таблице participants хочу сделать внешний ключ event_id ссылающийся на event_id из таблицы lessons. Но он ругается помогите плиз)
убедиться, что в lessons в столбце event_id все значения уникальны, и создать на этом поле уникальный индекс. После этого добавление внешнего ключа должно пройти
источник

A

Alex96 in sql_ninja
Max Chistyakov
убедиться, что в lessons в столбце event_id все значения уникальны, и создать на этом поле уникальный индекс. После этого добавление внешнего ключа должно пройти
Спасибо
источник

N

Nik in sql_ninja
Мне вот интересно.. Сообщения, выдаваемые редактором, совсем никто никогда не читает? 🤔
источник

G

Gopneg in sql_ninja
сложна
источник

N

Nik in sql_ninja
Русским (английским) языком же написано всё
источник

N

Nik in sql_ninja
Gopneg
сложна
Поэтому меня бесят тупые вопросы в чатиках. И бесят люди защищающие таких вопрошающих.. 🙈
источник

L

Les in sql_ninja
про уникальный индекс ошибка не написала, так что нормальный вопрос
источник

L

Les in sql_ninja
можно пиздеть на тупые вопросы в @sqlcom, а тут мы на них отвечаем )
источник