0 / 0 / 0
Регистрация: 06.04.2010
Сообщений: 13
|
||||||
1 | ||||||
Запрос на выборку с исключением повторяющихся строк07.04.2010, 16:21. Показов 9070. Ответов 12
Метки нет (Все метки)
Добрый день.
Столкнулся с еще одной проблемой. У меня есть представление, которое выводит данные из таблицы
Вертолёт(1) - 100 - 2,22 - 1 Вертолёт(1) - 156 - 1,70 - 1 Вертолёт(2) - 172 - 2,48 - 1 Вертолёт(2) - 1240 - 2,36 - 1 Самолёт(1) - 220 - 2,40 - 1 Самолёт(2) - 230 - 2,33 - 1 Самолёт(2) - 2240 - 2,01 - 1 и т.д. Нужно вывести данные вот в таком виде Вертолёт(1) - 100 - 2,22 - 1 - 156 - 1,70 - 1 Вертолёт(2) - 172 - 2,48 - 1 - 1240-2,36 - 1 Самолёт(1) - 220 - 2,40 - 1 Самолёт(2) - 230 - 2,33 - 1 - 2240 - 2,01 - 1 И посчитать кол-во заполненных полей FULL_DESCRIPTION (nvarchar). Ума ни приложу, как это сделать? Изучать SQL только начинаю. Буду благодарен за любую помощь.
0
|
07.04.2010, 16:21 | |
Ответы с готовыми решениями:
12
Запрос на выборку из строк Запрос на выборку строк с определенным окончанием Запрос на выборку строк от начала до ненужной Запрос на выборку и подсчета количества строк |
390 / 229 / 11
Регистрация: 09.12.2009
Сообщений: 668
|
||||||
07.04.2010, 19:07 | 2 | |||||
Создание хранимой процедуры на выборку...
Создаешь такую функцию группировки, а дальше
0
|
0 / 0 / 0
Регистрация: 06.04.2010
Сообщений: 13
|
|
07.04.2010, 23:20 [ТС] | 3 |
Возникает такая ошибка при обработке функции
Conversion failed when converting the nvarchar value 'Самолет(1)' to data type int.
0
|
390 / 229 / 11
Регистрация: 09.12.2009
Сообщений: 668
|
|
08.04.2010, 01:48 | 4 |
А где это оно у тебя в int конвертится?
Добавлено через 1 час 15 минут Сразу сбрось код твоей функции и код запроса, где ты ее используешь
0
|
0 / 0 / 0
Регистрация: 06.04.2010
Сообщений: 13
|
||||||
08.04.2010, 07:48 [ТС] | 5 | |||||
0
|
168 / 142 / 1
Регистрация: 01.04.2010
Сообщений: 474
|
|
08.04.2010, 10:29 | 6 |
Первая строчка не корректна, ты не тот тип прописуешь - вместо int необходимо указать хотя-бы varchar(50)
1
|
0 / 0 / 0
Регистрация: 06.04.2010
Сообщений: 13
|
|
18.04.2010, 21:41 [ТС] | 7 |
Уважаемые форумчане задача усложнилась, буду благодарен за любую помощь. Есть такая таблица static с данными [airport_id] nvarchar(255), [lines_id] nvarchar(255), [settled_date] nvarchar(255), [full_description] nvarchar(255),[lines] nvarchar(255), [selections_id] nvarchar(255), [selections] nvarchar(255), [fuel] float, [lbs] float, [pass] float, [up_time] nvarchar(255), [down_time] nvarchar(255), [status] nvarchar(255).
Данные выводятся вот в таком виде 1, 1, 03-07-2008 19:40:30, seatle/newyork NWY 250, british airlines, 1 , boing747, 242, 2220, 125, 03-07-2008 19:40:30, 03-07-2008 23:40:30, 0. В этой таблице более 15 млн. записей. Нужно вывести вот так [full_description],[lines],[selections_id],[selections],[fuel],[status] где поле [fuel] меньше 350. seatle/newyork NWY 250, british airlines, 1 , boing747, 242, 0 british airlines, 1 , boing747, 241, 0 iran airlines, 2 , il76, 300, 1
0
|
168 / 142 / 1
Регистрация: 01.04.2010
Сообщений: 474
|
|
19.04.2010, 11:20 | 8 |
Во первых: зачем ты почти все данные относиш к типу nvarchar(255) ?
для целочисленых цифр используй - int для дат не то что желательно, а необходимо использовать - datetime Каждое значение в nvarchar отяжеляет на один бит твою строку. Значение 255 - ты указал что оно будет весить 255 бит, и не важно что слово может быть с 5 букв.. SQL допишет оставшиеся 250 символов пробелами. Во вторых. какой критерий тебе нужен для вывода таблицы? я смотрю у тебя есть две даты, и исходя из этого у тебя один самолёт может быть сто раз в одном аэропорте но в разное время и тебе небось не интересно просматривать историю его полётов. В третьих: попробуй разбить свою мега-таблицу на несколько составных - она у тебя не гибкая.
0
|
0 / 0 / 0
Регистрация: 06.04.2010
Сообщений: 13
|
|
19.04.2010, 11:38 [ТС] | 9 |
Проблема вся в том, что я импортирую данные из csv файла. Пробовал разные варианты, вот эти типы данных больше всего подошли. Файлов очень много.
Мне нужен запрос который выводит вот эти строки без повторений [full_description] seatle/newyork NWY 250 ............................................. newyork/gamburg GBR 312............................................ что находится после вот этих данных меня в принципе не интересует, нужно только чтобы выполнялось условие по полю [fuel]. Да я понимаю, что таблица не гибкая и не соответствует правилам БД. Как провести преобразование таблицы с данными я ,к сожалению, не знаю.
0
|
168 / 142 / 1
Регистрация: 01.04.2010
Сообщений: 474
|
||||||
19.04.2010, 12:54 | 10 | |||||
Ну насчёт импорта данных - ты что-то точно не так делаешь, помочь в этом я те не очень смогу - импорт данных это моя ахилесова пята, но вот остальное так сделай (если я правильно понял твою задачу):
0
|
0 / 0 / 0
Регистрация: 06.04.2010
Сообщений: 13
|
|
19.04.2010, 14:32 [ТС] | 11 |
Получиться вот так:
seatle/newyork NWY 250 .............................................. seatle/newyork NWY 250 ............................................. seatle/newyork NWY 250 ............................................. seatle/newyork NWY 250 ............................................. seatle/newyork NWY 250 ............................................. seatle/newyork NWY 250 ............................................. seatle/newyork NWY 250 ............................................. seatle/newyork NWY 250 ............................................. newyork/gamburg GBR 312............................................ newyork/gamburg GBR 312............................................ newyork/gamburg GBR 312............................................ newyork/gamburg GBR 312............................................ где вместо точек будут разные данные мне же нужно посчитать кол-во строк, которые повторяются: seatle/newyork NWY 250 это будет запись под номером 1 newyork/gamburg GBR 312 это будет запись под номером 2 и т.д. Их более милиона.
0
|
168 / 142 / 1
Регистрация: 01.04.2010
Сообщений: 474
|
||||||
19.04.2010, 14:42 | 12 | |||||
для того что бы посчитать кол-во повторений для поля [full_description] - вот запрос:
1
|
390 / 229 / 11
Регистрация: 09.12.2009
Сообщений: 668
|
|
19.04.2010, 17:43 | 13 |
0
|
19.04.2010, 17:43 | |
19.04.2010, 17:43 | |
Помогаю со студенческими работами здесь
13
Слияние массивов с исключением повторяющихся элементов MySQL + PHP запрос на выборку уникальных строк по последней дате из двух таблиц Сформировать массив из двух других массивов с исключением повторяющихся элементов Получить файл g, образованный из файла f исключением повторяющихся вхождений одного и того же числа Запрос с исключением Запрос с исключением Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |