Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / SQLite [игнор отключен] [закрыт для гостей] / как выбрать? / 16 сообщений из 16, страница 1 из 1
02.01.2011, 23:18
    #37044655
TitovDima
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как выбрать?
Здраствуйте! Подскажите, как выбрать при помощи count() в таблице поле, с которым больше всего записей. Например есть таблицы:
CREATE TABLE STUDENT (
ID INTEGER NOT NULL PRIMARY KEY,
NAME VARCHAR(20) NOT NULL);

CREATE TABLE GROUP (
ID INTEGER NOT NULL PRIMARY KEY,
NAME VARCHAR(10) NOT NULL);

CREATE TABLE STUD_GROUP (
STUDENT_ID INTEGER NOT NULL,
GROUP_ID INTEGER NOT NULL, //это два внешних ключа для тех таблиц
PRIMARY KEY(STUDENT_ID, GROUP_ID));

И нужно выбрать в таблице STUD_GROUP поле STUDENT_ID, с которым больше всего записей. Допустим у меня эта таблица заполнена так:
1 | 1
1 | 2
1 | 3
2 | 1
2 | 2
3 | 4

В итоге должно быть STUDENT_ID = 1. Вопрос - как это сделать?
...
Рейтинг: 0 / 0
03.01.2011, 03:18
    #37044711
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как выбрать?
99 из 100 - задача высосана из пальца и в реальности не нужная.
Но если хочется извращаться, то запросто:
Код: plaintext
1.
select limit  1  t.STUDENT_ID, max(t.COUNT) 
from ( select STUDENT_ID, count(GROUP_ID) as COUNT from STUD_GROUP group by STUDENT_ID) as t
...
Рейтинг: 0 / 0
03.01.2011, 17:09
    #37045003
TitovDima
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как выбрать?
а что такое limit?
...
Рейтинг: 0 / 0
03.01.2011, 17:44
    #37045029
TitovDima
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как выбрать?
limit в SQLite нету, он же в MySQL
...
Рейтинг: 0 / 0
03.01.2011, 18:17
    #37045050
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как выбрать?
TitovDimalimit в SQLite нету, он же в MySQLЧитай букварь, полезно будет: http://sqlite.org/lang.html
...
Рейтинг: 0 / 0
03.01.2011, 19:31
    #37045094
TitovDima
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как выбрать?
White Owl99 из 100 - задача высосана из пальца и в реальности не нужная.
Но если хочется извращаться, то запросто:
Код: plaintext
1.
select limit  1  t.STUDENT_ID, max(t.COUNT) 
from ( select STUDENT_ID, count(GROUP_ID) as COUNT from STUD_GROUP group by STUDENT_ID) as t

как может работать эта конструкция, если LIMIT должен стоять после FROM а не перед??
...
Рейтинг: 0 / 0
03.01.2011, 19:38
    #37045098
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как выбрать?
TitovDimaWhite Owl99 из 100 - задача высосана из пальца и в реальности не нужная.
Но если хочется извращаться, то запросто:
Код: plaintext
1.
select limit  1  t.STUDENT_ID, max(t.COUNT) 
from ( select STUDENT_ID, count(GROUP_ID) as COUNT from STUD_GROUP group by STUDENT_ID) as t

как может работать эта конструкция, если LIMIT должен стоять после FROM а не перед??Молодец. Начинаешь думать. Теперь сделай следующий шаг и исправь ошибки в запросе который я написал.
...
Рейтинг: 0 / 0
03.01.2011, 20:36
    #37045118
TitovDima
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как выбрать?
select * from (select STUDENT_ID, count(GROUP_ID)
from GROUP_PARTY group by STUDENT_ID);

создает "таблицу" в которой id и кол-во записей с этими id.
теперь нужно выдрать отсюда id с максимальным кол-вом записей.
...
Рейтинг: 0 / 0
03.01.2011, 20:37
    #37045120
TitovDima
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как выбрать?
TitovDima,

черт, я бред написал) просто таблица GROUP не может создаваться, я и создал PARTY.
там должно быть STUD_GROUP вместо GROUP_PARTY.
...
Рейтинг: 0 / 0
03.01.2011, 20:48
    #37045126
TitovDima
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как выбрать?
TitovDima,

и как выдрать оттуда этот ID?
...
Рейтинг: 0 / 0
03.01.2011, 20:55
    #37045132
TitovDima
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как выбрать?
TitovDima,

надо выдрать ID, у которых count(GROUP_ID) из той "таблицы" будет самым большим
О великий White Owl скажи как это сделать?)
...
Рейтинг: 0 / 0
03.01.2011, 21:33
    #37045161
TitovDima
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как выбрать?
TitovDima,

УРАА, я сделал, спасибо, О Великий White Owl
...
Рейтинг: 0 / 0
03.01.2011, 22:44
    #37045203
TitovDima
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как выбрать?
White Owl,

запрос неправильный твой, я думаю, не то что надо он выдает(
...
Рейтинг: 0 / 0
04.01.2011, 00:08
    #37045276
Dmitry Arefiev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как выбрать?
TitovDima, ты решил тут дневник вести ? :)
...
Рейтинг: 0 / 0
04.01.2011, 16:25
    #37045803
TitovDima
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как выбрать?
Dmitry Arefiev,

да уже все, паника прошла, я сделал этот запрос, так что дневник закончился))
...
Рейтинг: 0 / 0
09.01.2011, 13:08
    #37050017
Andrew1411
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как выбрать?
TitovDima, История одного запроса.

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


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