SQL Pro - всё об SQL
Реклама: @anothertechrock
Контент канала:
1. Разбор вопросов с собеседований
2. Трюки SQL
3. Видео
4. Тесты
5. Задачи на логику
6. Юмор
Post #491
2.18K
- 💩 4
- 👍 3
- 🤡 2
- 🏆 2
SQ @sqlprofi
Showing posts older than #492 · Back to latest
cursor.execute('SELECT * from user where user_id = %(some_id)d', {'some_id': 1234})
records = cursor.fetchall()
#tipsresult = self.cursor.execute('SELECT * FROM `user` WHERE `user_id` = ?', (user_id,)).fetchmany(1)
return bool(len(result))
Нужно написать схожий запрос в psycopg2.INSERT, DELETE, SELECT, UPDATE#вопросы #собеседование
insert into phones#tips
with t as (select
ph.id,
unnest(ph.phones) as phone
FROM
phones ph )
select
id,
array_agg(phone) as phones
from
t
where phone like '%2%' // << место с фильтрацией "неверных" номеров
group by
id
on conflict(id) do update set phones = excluded.phones
varying[]. В этом поле сохраняется номера телефонов в таком виде[+012345678901","+123456789012","2347587E+11"]Как найти в этой таблице "неправильные" номера телефонов такого вида -
2347587E+11 и удалить? И чтоб после удаления в массиве было типа так:[+012345678901","+123456789012","2347587E+11"]
Массив после удаления [+012345678901","+123456789012"]
Решение будет вечером.ALTER#вопросы #собеседование
select id, reason, reportedUser, count(*) reportedCount#tips
from table
group by id, reason, reportedUser
order by 4 desc
{ "id": 2, "reason": "test","reportedUser": {id:123}}
{ "id": 3, "reason": "test","reportedUser": {id:123}}
Юзера можно зарепортить несколько раз и разные юзеры могут репортить одного юзера. Нужно получить запись в которой будет показано сколько раз был зарепорчен каждый юзер. Примерный вывод:{ "id": 2, "reason": "test","reportedUser": {id:123} reportedCount:2}
Решение будет вечером.