Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.06.02;
Скачать: [xml.tar.bz2];

Вниз

Как получить групповую сортировку в таблице?   Найти похожие ветки 

 
novill   (2003-05-13 10:40) [0]

Уважаемые мастаки, меня тут начальство озадачило:

Есть таблица с полями:
ШИФР - шифр группы записей (шифр комплекта деталей),
РАЗМЕР - уникальый признак записи в группе (размер детали).

Необходимо получить следующую сортировку:
Сначала идет группа записей минимальный РАЗМЕР в которой является наименьшим для всех остальных групп,
...,
последней идет группа минимальный РАЗМЕР в которой наибольший из всех групп.

Например
ШИФР|РАЗМЕР
3 |2
3 |3
3 |4
1 |3
1 |4
1 |5
1 |7
4 |5
4 |6
4 |7
4 |8

Ограничений на выбор способов нет, только очень не хочется руками перекапывать таблицу.


 
Johnmen   (2003-05-13 10:54) [1]

SELECT ШИФР, MIN(РАЗМЕР)
FROM Table
GROUP BY ШИФР
ORDER BY 2


 
WarLord   (2003-05-13 11:07) [2]


> SELECT ШИФР, MIN(РАЗМЕР)
> FROM Table
> GROUP BY ШИФР
> ORDER BY РАЗМЕР



 
Zacho   (2003-05-13 11:21) [3]


> Johnmen © (13.05.03 10:54)



> WarLord © (13.05.03 11:07)

Насколько я понял, надо получить все записи, а не только с минимальным размером. Так что, скорее всего надо что-то типа
SELECT T.SHIFR,T.RAZMER,
(SELECT MIN(T2.RAZMER) FROM TEST T2 WHERE T.SHIFR=T2.SHIFR)
FROM TEST T
ORDER BY 3,1


 
Соловьев   (2003-05-13 11:32) [4]

2 Zacho

> Сначала идет группа записей минимальный РАЗМЕР в которой
> является наименьшим для всех остальных групп,
> ...,
> последней идет группа минимальный РАЗМЕР в которой наибольший
> из всех групп.

групы-это все?


 
WarLord   (2003-05-13 11:33) [5]

а по-моему еще проще:
SELECT ШИФР, РАЗМЕР
FROM Table
ORDER BY РАЗМЕР, ШИФР


 
Zacho   (2003-05-13 11:49) [6]


> Соловьев © (13.05.03 11:32)

Автор исходного поста привел пример, какой результат надо получить. А в результате запроса Johnmen © (13.05.03 10:54) или WarLord © (13.05.03 11:07) получится что-то типа :
ШИФР|РАЗМЕР
3 |2
1 |3
4 |5

> WarLord © (13.05.03 11:33)

А ты попробуй, и увидишь что получится совсем не то, а вот что:
ШИФР|РАЗМЕР
3 |2
1 |3
3 |3
1 |4
3 |4
1 |5
4 |5
4 |6
1 |7
4 |7
4 |8


 
novill   (2003-05-13 13:36) [7]

Спасибо.


> Zacho

Ты прав.
У меня получилось. Правда запрос выполнялся минут 7 (на 6200 записей)


 
Zacho   (2003-05-13 13:41) [8]


> novill © (13.05.03 13:36)

Создай индекс на поле РАЗМЕР


 
novill   (2003-05-13 14:42) [9]


> Zacho © (13.05.03 13:41)

У тебя можно еще поконсультироваться?
Есть еще пара вопросов в продолжении этой темы.
Может почтой? или аськой? (146912494)


 
Zacho   (2003-05-13 14:50) [10]


> novill © (13.05.03 14:42)

Лучше аськой 35253857



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.06.02;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.007 c
3-2770
Cranium
2003-05-12 19:36
2003.06.02
FIBPLUS получение значения поля из DataSet


4-3207
Stexen
2003-04-02 18:25
2003.06.02
Запуск exe-файла.


3-2747
AlexGreg
2003-05-13 12:57
2003.06.02
... Медленно встаёт ...


3-2764
Инна
2003-05-12 21:05
2003.06.02
вызов ADODataSet по номеру


14-3086
nizar
2003-05-14 04:50
2003.06.02
Forum Reader





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский