powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Самый популярный фильм за месяц из двух таблиц
23 сообщений из 23, страница 1 из 1
Самый популярный фильм за месяц из двух таблиц
    #39631363
lyuthe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть две таблицы: dogovor и film. Из таблицы dogovor необходимо вытащить фильм, который чаще всего брали за какой-либо месяц, там есть столбец выдача -- самый популярный чаще всего появляется в столбце в этот период. Но фильм там обозначен идентификатором и уже через него надо показать название фильма из второй таблицы, film.
Помогите, как это сделать?
...
Рейтинг: 0 / 0
Самый популярный фильм за месяц из двух таблиц
    #39631380
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lyuthe,

Запрос.

.....
stax
...
Рейтинг: 0 / 0
Самый популярный фильм за месяц из двух таблиц
    #39631416
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lyuthe,

шоб Вас (и меня как соучасника) не обвинили в плагиате с Киры

без аналитики
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
  1  with dogovor(film_id,client_id,vidacha,vozvrat) as (
  2    select 1,1,date '2017-03-20',date '2018-01-30' from dual union all
  3    select 1,2,date '2017-03-25',date '2018-03-22' from dual union all
  4    select 1,3,date '2018-03-20',date '2018-04-02' from dual union all
  5    select 1,4,date '2018-01-20',date '2018-02-02' from dual union all
  6    select 2,1,date '2010-03-20',date '2018-04-01' from dual
  7    )
  8   ,film (film_id,filmn) as (
  9    select 1,'Операция Ы' from dual union all
 10    select 2,'Avatar' from dual )
 11  ,dd as (
 12  select MIN(film_id)KEEP (DENSE_RANK FIRST ORDER BY count(*) desc) id_max
 13  from dogovor f
 14  where to_char(vidacha, 'MM') = '03'
 15  group by f.film_id
 16  )
 17  select film_id,filmn
 18  from dd,film f
 19* where  dd.id_max = f.film_id
SQL> /

   FILM_ID FILMN
---------- ----------
         1 Операция Ы



.....
stax
...
Рейтинг: 0 / 0
Самый популярный фильм за месяц из двух таблиц
    #39631449
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я думал, klient'ы и vidach'и остались в прошлом веке
...
Рейтинг: 0 / 0
Самый популярный фильм за месяц из двух таблиц
    #39631463
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymx,

неучи (английского) из прошлого века продолжают их использовать (ет я так скромно о себе)

ps
tn-таб номер
cex-цех
fio - ?
nu-начисление/удержание
god-год
mfo-мфо
і тд

но не все так жутко (есть и лучики надежды)
sex - пол
name - имя
user - пользователь
date - дата
и тд


.....
stax
...
Рейтинг: 0 / 0
Самый популярный фильм за месяц из двух таблиц
    #39631482
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Staxлучики надежды)
sex - полЛучше безобразно, но единообразно. Вместо секса пусть остается цех.
...
Рейтинг: 0 / 0
Самый популярный фильм за месяц из двух таблиц
    #39631520
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-Staxлучики надежды)
sex - полЛучше безобразно, но единообразно. Вместо секса пусть остается цех.

согласен, но ж хочется хоч как-то пробщится к великим и могучим

авторВ мире существует только два великих языка — русский и английский. (© Батько)


.....
stax
...
Рейтинг: 0 / 0
Самый популярный фильм за месяц из двух таблиц
    #39631539
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Staxсогласен, но ж хочется хоч как-то пробщится к великим и могучим
ИМХО. чтобы приобщение желательно не совпадало с Reserved word
...
Рейтинг: 0 / 0
Самый популярный фильм за месяц из двух таблиц
    #39631603
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
123ййStaxсогласен, но ж хочется хоч как-то пробщится к великим и могучим
ИМХО. чтобы приобщение желательно не совпадало с Reserved word
ето пережитки прошлого века (вернее прошлого тысячлетья)

жажду к знаниям, прогресс не остановить

будущее за сдвоенными лапками

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SQL> ed
Wrote file afiedt.buf

  1* select sysdate "date" from dual
SQL> /

date
--------
17.04.18

SQL>




.....
stax
...
Рейтинг: 0 / 0
Самый популярный фильм за месяц из двух таблиц
    #39631641
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Staxшоб Вас
Где мои семнадцать лет...
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
select substr(max(to_char(count(*),'fm00000000')||'#'||f.film_id||'. '||f.filmn),10) x
from dogovor d, film f
where to_char(d.vidacha, 'MM') = '03'
  and f.film_id = d.film_id
  group by f.film_id, f.filmn;

X
-----------------------------------------------------
1. Операция Ы
...
Рейтинг: 0 / 0
Самый популярный фильм за месяц из двух таблиц
    #39631652
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Staxбудущее за сдвоенными лапками
ИМХО лучше бы они сдохли совсем.
а то при HS to MSSQL выглядит очень красиво
Код: plsql
1.
select * from "MyTaBLe"@sql


да и на местности не лучше. всегда надо помнить про лапки
Код: plsql
1.
select * from mytable where "sysdate"=sysdate
...
Рейтинг: 0 / 0
Самый популярный фильм за месяц из двух таблиц
    #39631679
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous,

чутку не из прошлого тысячлетья (27.01.00)

https://groups.google.com/forum/#!topic/fido7.ru.rdbms.oracle/QlQUzm6MUug

автор SE> Hе так давно yже обсyждался этот вопpос. Hе помню кто, пpедложил
SE> очень пpостое pешение:
SE>
SE> SELECT to_number( substr( max( to_char(result,'000') ||
SE> to_char(num_auto,'000')), 4)),
SE> MAX(RESULT), AVG(RESULT),STDDEV(RESULT)
SE> FROM GONKI
SE> GROUP BY ZAEZD_NUM

....
stax
...
Рейтинг: 0 / 0
Самый популярный фильм за месяц из двух таблиц
    #39631684
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
123ййStaxбудущее за сдвоенными лапками
ИМХО лучше бы они сдохли совсем.
а то при HS to MSSQL выглядит очень красиво
Код: plsql
1.
select * from "MyTaBLe"@sql


да и на местности не лучше. всегда надо помнить про лапки
Код: plsql
1.
select * from mytable where "sysdate"=sysdate

Это же цветочки по сравнению с феерическими возможностями предоставляемыми MSSQL. :)
Там тебе и одинарные кавычки и двойные и квадратные скобки.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
with t(id, "select", [from table]) as
(
select 1, 'a', 'b'
)
select id as 'yet another shit',
       [select],
       "from table"
  from t;


Код: sql
1.
2.
3.
4.
5.
yet another shit select from table
---------------- ------ ----------
1                a      b

(1 row(s) affected)
...
Рейтинг: 0 / 0
Самый популярный фильм за месяц из двух таблиц
    #39631692
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshopЭто же цветочки по сравнению с феерическими возможностями предоставляемыми MSSQL. :)
да знаю я эти возможности и считаю правильным, что Ларри не пошел этим путем.
...
Рейтинг: 0 / 0
Самый популярный фильм за месяц из двух таблиц
    #39631703
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshop,

прекрасно!

а я то голову ломал, с чего ето вдрух andreymx в MSSQL продался

.....
stax
...
Рейтинг: 0 / 0
Самый популярный фильм за месяц из двух таблиц
    #39641849
lyuthe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andrey_anonymous,

доброе утро, не могли бы Вы пояснить, что делает вот эта строка?
andrey_anonymousselect substr(max(to_char(count(*),'fm00000000')||'#'||f.film_id||'. '||f.filmn),10) x
...
Рейтинг: 0 / 0
Самый популярный фильм за месяц из двух таблиц
    #39641850
lyuthe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stax, спасибо огромное))
...
Рейтинг: 0 / 0
Самый популярный фильм за месяц из двух таблиц
    #39641852
lyuthe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andreymx, всё чётко по методичке и поля там к сожалению именно так и названы
...
Рейтинг: 0 / 0
Самый популярный фильм за месяц из двух таблиц
    #39641862
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lyutheandrey_anonymous,

доброе утро, не могли бы Вы пояснить, что делает вот эта строка?
andrey_anonymousselect substr(max(to_char(count(*),'fm00000000')||'#'||f.film_id||'. '||f.filmn),10) x

Вот же ленивый студент пошел.
RTFM substr, max, to_char и count
...
Рейтинг: 0 / 0
Самый популярный фильм за месяц из двух таблиц
    #39641891
lyuthe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
123йй, спасибо)) я пыталась нагуглить инфу, просто как подушку безопасности, если заставят пояснять. что такое 'fm00000000' и решётка в '' зачем?
...
Рейтинг: 0 / 0
Самый популярный фильм за месяц из двух таблиц
    #39641946
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lyuthe,
fm - пробельчик
00000000 - 8 знаков(цифер, с лидирующими 0)
# - для красоты (можете заменить на любимый символ, убрать, и тд)

.....
stax
...
Рейтинг: 0 / 0
Самый популярный фильм за месяц из двух таблиц
    #39641947
lyuthe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stax, решётка вообще не гуглилась, но я уже догадалась её удалить и посмотреть, что получится) десятка в конце, это, как я понмаю, кол-во символов извлекаемых substr, это же к нему относится? я её заменила на 15 и мне название фильма выдало только заднюю его половину, почему?
...
Рейтинг: 0 / 0
Самый популярный фильм за месяц из двух таблиц
    #39641989
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lyuthe,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
  1  with t (film_id,filmn) as (
  2  select  10,'Операція И' from dual union all
  3  select 100,'Костяная нога' from dual)
  4  select
  5    --substr(max(to_char(count(*),'fm00000000')||'#'||f.film_id||'. '||f.filmn),10) x
  6    to_char(count(*),'fm00000000')||'#'||f.film_id||'. '||f.filmn x
  7  from t f
  8* group by f.film_id, f.filmn
SQL> /

X
-----------------------------------------------------------------
00000001#100. Костяная нога
00000001#10. Операція И



1)substr(...,10)
10-вырезаем начиная с 10-й позиции (после #) і до конца строки

2)если надо токо название то
а) вырезаем после '. ' (разделитеь ид и название)
б) ид выводим с маской (напр 9999999), тогда вырезаем с фиксированной позиции (в примере 20)
с) вообще Ид убираем с запроса (тогда с 10-й)

б)
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
SQL> ed
Wrote file afiedt.buf

  1  with t (film_id,filmn) as (
  2  select  10,'Операція И' from dual union all
  3  select 100,'Костяная нога' from dual)
  4  select
  5    substr(max(to_char(count(*),'fm00000000')||'#'||to_char(f.film_id,'9999999')||'. '||f.filmn),20) x
  6    --to_char(count(*),'fm00000000')||'#'||f.film_id||'. '||f.filmn x
  7  from t f
  8* group by f.film_id, f.filmn
SQL> /

X
--------------
Костяная нога



....
stax
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Самый популярный фильм за месяц из двух таблиц
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]