Артём Санников

Артём Санников

Канал посвящен информационным технологиям и их изучению.
Доступные видео на канале помогут вам с лёгкостью освоить новые навыки, чтобы в дальнейшем применять их на практике.
Больше информации вы сможете найти на сайте: artemsannikov.ru

Пікірлер

  • @erastes
    @erastes2 күн бұрын

    Спасибо за решение! Но так и не понял, почему нельзя группировать только по member_name? Почему если не учесть status в group by выдает ошибку?

  • @bombk1n468
    @bombk1n4683 күн бұрын

    SELECT good_name FROM Goods LEFT JOIN Payments ON good = good_id AND YEAR(date) = 2005 WHERE good IS NULL GROUP BY good_name

  • @user-mz1hl6qj9g
    @user-mz1hl6qj9g12 күн бұрын

    как мне найти эту базу данных

  • @Sannikov.a.a
    @Sannikov.a.a12 күн бұрын

    @@user-mz1hl6qj9g эта база данных находится на сайте sql-academy

  • @user-ii1el1xd4j
    @user-ii1el1xd4jАй бұрын

    О_О страшно благодарчка за эти видео

  • @nikitanikitin5934
    @nikitanikitin5934Ай бұрын

    Подскажите, пожалуйста, будет ли верным использование запроса SELECT COUNT(plane) AS 'Количество' FROM Trip WHERE plane = 'TU-134' GROUP by Количество;

  • @user-tg9wn7er1y
    @user-tg9wn7er1yАй бұрын

    WITH AAAA AS( SELECT company, COUNT(company) 'aaa' FROM Trip GROUP BY company ORDER BY aaa ASC LIMIT 3 ) DELETE Company FROM Company WHERE id IN ( SELECT company FROM AAAA )

  • @f1n1st13
    @f1n1st13Ай бұрын

    INSERT INTO Goods ( SELECT COUNT(*) + 1, 'Cheese', ( SELECT good_type_id FROM GoodTypes WHERE good_type_name = 'food' limit 1 ) FROM Goods ) Решение в премиуме, вообще не понимаю как работает, куда делись values? и почему нет имен колонок? Может кто то объяснить?

  • @kiss.to4ka.163
    @kiss.to4ka.163Ай бұрын

    Так сохранится только 1окно или все?

  • @kiss.to4ka.163
    @kiss.to4ka.163Ай бұрын

    Одно окно😢

  • @Sannikov.a.a
    @Sannikov.a.aАй бұрын

    Будет сохранён проект , который открыт в текущем окне

  • @kadetchualihanov
    @kadetchualihanovАй бұрын

    Артём, добрый день! Тоже интересует этот вопрос, почему задача решается только с помощью алиаса? В чем проблема?

  • @Sannikov.a.a
    @Sannikov.a.aАй бұрын

    При попытке выполнить запрос без псевдонима, СУБД пытается интерпретировать goods в подзапросе как таблицу в текущем контексте, то есть как целевую таблицу вставки. Псевдоним “as t” решает эту проблему, потому что он создает временное наименование для таблицы goods в контексте подзапроса. И теперь СУБД понимает, что t - это не таблица в текущем контексте, а временное имя для таблицы goods в подзапросе.

  • @lenabarlow
    @lenabarlowАй бұрын

    Странно, у меня в условиях ещё сказано использовать NOW()

  • @user-ot3ts7lj6f
    @user-ot3ts7lj6f27 күн бұрын

    у меня тоже

  • @musslim_808
    @musslim_808Ай бұрын

    половина видео интро класс

  • @Shogun_Sun
    @Shogun_SunАй бұрын

    Спасибо!

  • @poidem_domoi
    @poidem_domoi2 ай бұрын

    что делать если не сохранял бекап?

  • @Sannikov.a.a
    @Sannikov.a.a2 ай бұрын

    С такой ситуацией не сталкивался, поэтому подсказать не могу

  • @boristaranda
    @boristaranda2 ай бұрын

    select FLOOR(avg(FLOOR(DATEDIFF(NOW(), birthday) / 365))) as age from FamilyMembers Не благодарите, нашел на GITHUB

  • @mishaprokopovich5253
    @mishaprokopovich52532 ай бұрын

    Без join-ов можно так: SELECT name FROM Passenger p WHERE p.id IN ( SELECT pit.passenger FROM Pass_in_trip pit WHERE pit.trip IN ( SELECT t.id FROM Trip t WHERE t.plane = 'TU-134' AND t.town_to = 'Moscow' ) ) GROUP BY name; но вряд ли это производительней join-ов

  • @user-kk7xt3uo7x
    @user-kk7xt3uo7x2 ай бұрын

    Мое решение такое (возможно отсутствует красота синтаксиса, но я только учусь): SELECT we.teacher FROM ( SELECT sc.teacher AS teacher, c.name FROM Schedule AS sc INNER JOIN Class AS c ON (sc.class = c.id) AND (c.name LIKE '11%') GROUP BY sc.teacher, sc.class ) AS we GROUP BY we.teacher HAVING COUNT(we.teacher) = (SELECT COUNT(*) FROM Class WHERE name LIKE '11%') ORDER BY we.teacher

  • @awesomegirl8410
    @awesomegirl84102 ай бұрын

    Артем, но задание 35 немного другое. Нужно посчитать РАЗЛИЧНЫЕ кабинеты. Если бы кабинет в этот день использовался несколько раз, то результат был бы другим.

  • @BonShot-jv6zm
    @BonShot-jv6zm2 ай бұрын

    Артём, здравствуйте! Голову сломал уже, объясните , пожалуйста! Почему если не задать алиас таблице "Goods t" , то задача не решается. Я не понимаю( В других решениях аналогичная ситуация

  • @Sannikov.a.a
    @Sannikov.a.aАй бұрын

    При попытке выполнить запрос без псевдонима, СУБД пытается интерпретировать goods в подзапросе как таблицу в текущем контексте, то есть как целевую таблицу вставки. Псевдоним “as t” решает эту проблему, потому что он создает временное наименование для таблицы goods в контексте подзапроса. И теперь СУБД понимает, что t - это не таблица в текущем контексте, а временное имя для таблицы goods в подзапросе.

  • @mishaprokopovich5253
    @mishaprokopovich52532 ай бұрын

    я такое выдал SELECT good_name from Goods g LEFT JOIN (SELECT DISTINCT good FROM Payments WHERE YEAR(date)='2005' ) subquery ON g.good_id=subquery.good WHERE subquery.good is null

  • @khikikomori
    @khikikomori2 ай бұрын

    Спасибо за твой труд! Вопрос: почему идентификатор комнаты находишь так сложно? Если id есть в Reservation - значит комнату хотя бы 1 раз резервировали. SELECT DISTINCT room_id FROM Reservation разве не достаточно? :)

  • @user-swqaj3427
    @user-swqaj34272 ай бұрын

    можно обойтись одним джоином между Reviews и Reservations, потому что в таблице Reservations и так только те комнаты, которые хоть раз арендовали

  • @ertastoleuov4262
    @ertastoleuov42622 ай бұрын

    а почему в команде селект указывается звездочка?

  • @Sannikov.a.a
    @Sannikov.a.a2 ай бұрын

    Чтобы вывести все столбцы из таблицы, так как это нужно по условию задачи

  • @user-rx7jo1we2p
    @user-rx7jo1we2p3 ай бұрын

    Не.работант

  • @user-rx7jo1we2p
    @user-rx7jo1we2p3 ай бұрын

    Не работает

  • @user-rx7jo1we2p
    @user-rx7jo1we2p3 ай бұрын

    Такая имба с этих видео научился sql и теперь работаю за границей

  • @akiiiro
    @akiiiro3 ай бұрын

    Спасибо огромное

  • @desans3455
    @desans34553 ай бұрын

    Бляя чел. Ну 19 секунд пустой инфы)

  • @Sannikov.a.a
    @Sannikov.a.a3 ай бұрын

    Читай доку, там будет быстрее)

  • @Jet-fm4om
    @Jet-fm4om3 ай бұрын

    это если может быть несколько деликатесов с максимальной ценой. если мы уверен, что такой всего 1, то можно и как автор видео. SELECT g.good_name, p.unit_price FROM Payments p JOIN Goods g ON p.good = g.good_id JOIN GoodTypes gt ON gt.good_type_id = g.type WHERE p.unit_price = ( SELECT MAX(unit_price) FROM Payments p JOIN Goods g ON p.good = g.good_id JOIN GoodTypes gt ON gt.good_type_id = g.type WHERE gt.good_type_name = 'delicacies' );

  • @user-rc9ht6hr8d
    @user-rc9ht6hr8d3 ай бұрын

    Спасибо!

  • @uikuw
    @uikuw3 ай бұрын

    что делать, если когда я нажимаю анпротект, после всех верно введённых данных, ничего не происходит?.. просто не срабатывает кнопка, перепробовала несколько раз

  • @user-sr5oe8mh6e
    @user-sr5oe8mh6e3 ай бұрын

    без SUM в 3-й строке работать не будет

  • @user-qk2wl4yf5y
    @user-qk2wl4yf5y3 ай бұрын

    Объясните, пожалуйста, зачем нужно было соединять с таблицей Trip?

  • @mishaprokopovich5253
    @mishaprokopovich52532 ай бұрын

    незачем, иногда грешат таким

  • @vazdrich
    @vazdrich3 ай бұрын

    Почему не срабатывает добавление WHERE, где через селект ищем MAX(Pay.unit_price)?

  • @aleksaleks583
    @aleksaleks5834 ай бұрын

    Забавно , но если посмотреть то товар "red caviar" продавался в 2006 году и у него есть ID платежки. Получается в описании задания неточность

  • @Foxxx_1331
    @Foxxx_13314 ай бұрын

    я так понимаю, при окне readonly нигде инфы нет. короче. после 30минутного дебилизма с прогой, вот как решить. закройте браузер. закройте это окно readonly... и ткните на unprotect. Заработает. из-за того, что браузер в фоне либо открыт unprotect не сработает

  • @blar_n_one8685
    @blar_n_one86854 ай бұрын

    SELECT good_name FROM Goods LEFT JOIN Payments ON Goods.good_id=Payments.good GROUP BY good_name HAVING SUM(YEAR(date)= '2005') IS NULL OR SUM (YEAR(date) = '2005')= 0

  • @alweon8862
    @alweon88624 ай бұрын

    У меня получилось не так изящно, но все же: Select member_name, SUM(Payments.amount*Payments.unit_price) as costs FROM FamilyMembers JOIN Payments on Payments.family_member = FamilyMembers.member_id WHERE YEAR(Payments.date) = '2005' AND Month(Payments.date) = '6' GROUP BY member_name

  • @ThisRussia
    @ThisRussia4 ай бұрын

    SELECT FLOOR(AVG(YEAR(NOW())-YEAR(birthday)))-1 as age FROM FamilyMembers с каждым годом увеличиваем на 1 :)

  • @user-br5yr5hh2q
    @user-br5yr5hh2q4 ай бұрын

    Power BI на виндовс 7 уже не устанавливается ?

  • @Sannikov.a.a
    @Sannikov.a.a4 ай бұрын

    Думаю нет, надо смотреть по версии ПО

  • @sergey007lozhkin
    @sergey007lozhkin4 ай бұрын

    а разве не нужно учесть условие (Having 3>0)? Ведь тут таких людей нет, которые ничего не потратили, а на практике это условие обязательно

  • @xDizeler
    @xDizeler4 ай бұрын

    Добрый день, почему нельзя было сделать так : where p2.name = 'Steve Martin' t.town_to = 'London' , а писать в And ? получается where не поддерживает больше 1 условия?

  • @user-gj6or8pz8p
    @user-gj6or8pz8p4 ай бұрын

    задача изменилась: теперь нельзя использовать функцию week, а по тексту появилось описание что такое неделя. предполагаю, что нужно использовать date_format, но что-то я не разобралась с вариациями формата, выдаёт ошибку

  • @Cesar1k
    @Cesar1k4 ай бұрын

    работает функция week, причем принимает ответ без указания года.

  • @user-nd9do2nk2j
    @user-nd9do2nk2j4 ай бұрын

    c if решение такое: select name, if(id in(select owner_id from rooms), 1, 0) is_owner, if(id in(select user_id from reservations), 1, 0) is_tenant from users

  • @Sanya_Uvelir
    @Sanya_Uvelir4 ай бұрын

    SELECT member_name, status , sum(amount*unit_price) as costs from Payments p JOIN FamilyMembers f ON p.family_member=f.member_id where YEAR(date)=2005 GROUP by p.family_member не знаю почему но тоже прошло правильно

  • @user-nd9do2nk2j
    @user-nd9do2nk2j4 ай бұрын

    Спасибо за материал! Очень помогло. Находил ответы так же в текстовом варианте, но с видео удобнее проверять себя.

  • @user-nd9do2nk2j
    @user-nd9do2nk2j4 ай бұрын

    либо вот так вот: select if(price <= 100, 'economy', if(price < 200, 'comfort', 'premium')) category, count(*) count from rooms group by category

  • @user-nd9do2nk2j
    @user-nd9do2nk2j4 ай бұрын

    еще можно с помощью разделителя решить. вот так: select substring_index(email, '@', -1) as domain , count(*) as count from users group by domain order by count desc, domain

  • @user-nd9do2nk2j
    @user-nd9do2nk2j4 ай бұрын

    спасибо!

  • @ksu_valery
    @ksu_valery4 ай бұрын

    Это некорректный запрос, т.к. не учитываете месяц рождения ... у вас получится, что человеку, рожденному 31.12.2000, 1 января 2024 уже исполнилось 24 года, хотя до ДР жить ещё целый год ))) ... у меня 47 получается, а нужно подогнать под тренажер )) измучилась, вот сюда привели поиски решения ))

  • @user-ug2sj4bg2o
    @user-ug2sj4bg2o5 ай бұрын

    А почему тут не работает такой запрос? select name from Company where id in ( SELECT id from Trip where plane="Boeing" );