Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.06.02;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.013 c
3-2812
DBDev
2003-05-15 11:44
2003.06.02
как корректно записать объект OLE в поле БД?


14-3153
dim-
2003-05-14 21:57
2003.06.02
Как можно поставить ограничение на внешние дисководы?


6-3040
Pokotskiy
2003-03-31 13:37
2003.06.02
Services+Socket?


1-3009
Aleksandr
2003-05-20 15:28
2003.06.02
Как определить, является ли вызываемый метод абстрактным?


14-3134
Jackson
2003-05-07 21:51
2003.06.02
TestTypes!Где взять?