powered by simpleCommunicator - 2.0.37     © 2025 Programmizd 02
Форумы / SQLite [игнор отключен] [закрыт для гостей] / SQL запрос
2 сообщений из 2, страница 1 из 1
SQL запрос
    #39129181
deepstyle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Допустим есть таблицы COPIA (ID, TYPE_MEDIA, IZNOS) и таблица DOSTAVKA (ID, DATAARENDY, ID_COPIA(внешний ключ из COPIA) ).
Прошу помочь написать SQL запрос который выберет все самые востребованные копии, т. е. объекты которые чаще всего брались в аренду.

Запросы создающие таблицы:

sqlite> CREATE TABLE COPIA (
ID INTEGER PRIMARY KEY NOT NULL,
TYPYN TEXT NOT NULL,
FORMATZ TEXT NOT NULL,
IZNOS INTEGER NOT NULL,
DATAIZG INTEGER NOT NULL
);

Генерация схемы DOSTAVKA
sqlite> CREATE TABLE DOSTAVKA (
ID INTEGER PRIMARY KEY NOT NULL,
FOREIGN KEY(COPY_ID) REFERENCES COPIA (ID),
ADDRESS TEXT NOT NULL,
DATAARENDY INTEGER NOT NULL,
DATAVOZVRATA INTEGER
);
...
Рейтинг: 0 / 0
SQL запрос
    #39129213
MrCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Надо сгруппировать выборку из Доставки по ID_COPIA, посчитать COUNT для каждой группы, упорядочить по убыванию и выбрать первые записи (скажем, по количеству аренд или просто первые N штук):

Код: plaintext
1.
2.
3.
SELECT [FIRST ???] COUNT(1) CNT, ID_COPIA
FROM DOSTAVKA
GROUP BY ID_COPIA
[HAVING CNT > ????];

Затем к получившейся выборке по внешнему ключу можно подцепить информацию об объекте:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
SELECT [FIRST ???] COUNT(1) CNT, DOSTAVKA.ID_COPIA, COPIA.TYPE_MEDIA 
FROM DOSTAVKA

  left join COPIA 
    on DOSTAVKA.ID_COPIA = COPIA.ID

GROUP BY ID_COPIA
[HAVING CNT > ????];
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / SQLite [игнор отключен] [закрыт для гостей] / SQL запрос
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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