Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Базы данных MySQL

  Все выпуски  

RFpro.ru: Базы данных MySQL


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный хостинг на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Чемпионы рейтинга экспертов в этой рассылке

Гуревич Александр Львович
Статус: Специалист
Рейтинг: 4201
∙ повысить рейтинг »
lamed
Статус: Практикант
Рейтинг: 2218
∙ повысить рейтинг »
_Ayl_
Статус: Практикант
Рейтинг: 1833
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И ПО / Программирование / Базы данных MySQL

Номер выпуска:452
Дата выхода:07.04.2010, 14:00
Администратор рассылки:Victor Pyrlik, Модератор
Подписчиков / экспертов:601 / 188
Вопросов / ответов:3 / 9

Вопрос № 109065: Здравствуйте ! Допустим у меня есть таблица с 1000 записями. Мне нужно выбрать 100 из них, причем сделать сортировку по возрастанию по какому нибудь столбцу. И я точно знаю что в этой сотне записей будет запись с именем "123123.gif"-названи...


Вопрос № 161997: Здравствуйте! Прошу вашей помощи в решении на первый взгляд простой задачи: у меня есть например таблица из 5 столбцов, все данные типа char(2) (см. приложение). Помогите мне составить запрос, что бы при указании первых трех значений...
Вопрос № 42162: Уважаемуе эксперты помогите пожалуйста, нужно создать MDE-файл для преобразованной базы (из Access97 в Access2002) При созданиии файла выходит сообщение об ошибке в Модуле ...

Вопрос № 109065:

Здравствуйте ! Допустим у меня есть таблица с 1000 записями. Мне нужно выбрать 100 из них, причем сделать сортировку по возрастанию по какому нибудь столбцу. И я точно знаю что в этой сотне записей будет запись с именем "123123.gif"-название столбца filename. Так вот , как можно узнать номер этой записи ? Не номер из самой таблицы из 1000 строк, а номер из выбранной сотни. Порядковый номер. Если это вообще возможно.

Отправлен: 12.11.2007, 15:04
Вопрос задал: Whiteman, Посетитель
Всего ответов: 4
Страница вопроса »


Отвечает Errandir, Студент :
Здравствуйте, Whiteman!

SELECT COUNT (*) FROM -- считаем кол-во элементов
(SELECT * FROM tab -- из подтаблицы таблицы tab...
“усл”) AS subtab -- “усл” — условие выборки, например WHERE sex == male
WHERE col <= “tgt”; -- ...которые располагались бы раньше нужного (“tgt”) нам элемента в колонке col включая его самого если бы мы сортировали по ней, что соответствует его номеру.

Надеюсь понятно...
-----
Si vox est - canta!

Ответ отправил: Errandir, Студент
Ответ отправлен: 12.11.2007, 20:54

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 193503 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает Тесленко Евгений Алексеевич, Практикант :
    Здравствуйте, Whiteman!
    "Допустим" Вы используете MS SQL тогда сотня записей отображается запросом который начинается так:
    SELECT TOP 100...
    Определить номер записи содержащей "123123.gif" проще если нумерация строк будет отображаться. В вопросе 104.829 эта тема подымалась, подобный запрос отобразит поле с нумерацией по порядку:
    select test_3.rank, test_3.id_test, test_3.string
    from (select test_1.id_test, test_1.string, (select count(*) from test as test_2 where test_2.id_test <= test_1.id_test) as rank from test as test_1) as test_3
    order by rank
    Евгений.

    Ответ отправил: Тесленко Евгений Алексеевич, Практикант
    Ответ отправлен: 12.11.2007, 23:19

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 193531 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает Титов Михаил Анатольевич, 5-й класс :
    Здравствуйте, Whiteman!

    Сортировать надо по filename?, тогда запрос

    SELECT No
    FROM (
    SELECT Count(*) AS No, T2.filename
    FROM Table AS T1 INNER JOIN Table AS T2 ON T1.filename <= T2.filename
    WHERE .... -- здесь ваше условие отбора
    GROUP BY T2.filename
    ) AS T
    WHERE T.filename = \'123123.gif\'

    вернет вам номер вашей записи в выборке. Но это так, для демонстрации одного способа последовательной нумерации строк в запросе. Конкретно ваша задача может быть решена короче:

    SELECT Count(*) AS No
    FROM Table
    WHERE <другие условия отбора> AND filename <= \'123123.gif\'
    ORDER BY filename

    В данном случае запись с полем filename, равным \'123123.gif\' будет последней в выборке, а количество строк будет являтся ее порядковым номером.

    Ответ отправил: Титов Михаил Анатольевич, 5-й класс
    Ответ отправлен: 13.11.2007, 03:22

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 193551 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает Nomad_fromx_2007, 2-й класс :
    Здравствуйте, Whiteman!
    Вот запрос, который это реализует на Оракле:
    1 подзапрос - выборку делает с сортировкой по столбцу
    2 подзапрос - пронумеровывает записи + выбирает только первые 100 записей
    3 подзапрос - ищет конкретно по имени файла

    Приложение:

    Ответ отправил: Nomad_fromx_2007, 2-й класс
    Ответ отправлен: 13.11.2007, 05:04

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 193555 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 161997:

    Здравствуйте!

    Прошу вашей помощи в решении на первый взгляд простой задачи: у меня есть например таблица из 5 столбцов, все данные типа char(2) (см. приложение).
    Помогите мне составить запрос, что бы при указании первых трех значений, я получал элемент, который максимальное количество раз встречается во всех строчках таблицы при данных трех значениях. Например, из нижней таблицы, я задал первые три значения 1 2 2, в итоге должно получиться 4, т.к. оно максимальное количество раз встречается при заданном наборе первых трех значений.

    Заранее спасибо!

    Отправлен: 04.03.2009, 12:52
    Вопрос задал: Ole, 3-й класс
    Всего ответов: 4
    Страница вопроса »


    Отвечает Hubbitus, 10-й класс :
    Здравствуйте, Ole!
    >Помогите мне составить запрос, что бы при указании первых трех значений, я получал элемент, который максимальное количество раз встречается во всех строчках таблицы при данных трех значениях.
    На сколько я понял нужно посчитать количество строк, значения в первых 3х столбцах совпадают с данными, так?

    SELECT COUNT(*) FROM tablename WHERE field1 = 1 AND field2 = 2 AND field3 = 3
    -----
    Если у Вас есть все что Вы хотите - значит Вы мало хотите!

    Ответ отправил: Hubbitus, 10-й класс
    Ответ отправлен: 04.03.2009, 13:42

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 245018 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает Челноков Виктор Альбертович, Студент :
    Здравствуйте, Ole!
    Попробуйте запрос

    select top (1) t4
    from (
    SELECT t1, t2, t3, t4,count(t4)as t5
    FROM Table_2
    where t1='1' and t2='2' and t3='3'
    GROUP BY t1, t2, t3, t4) as tem
    order by t5 desc

    Table_2 - название табл.
    t1, t2, t3, t4 - названия столбцов.
    sql 2005

    Ответ отправил: Челноков Виктор Альбертович, Студент
    Ответ отправлен: 04.03.2009, 13:58

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 245019 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает PVS@Lviv, Профессионал :
    Здравствуйте, Ole!
    Pre Scriptum: нужно, наверное, вводить правило "В вопросах по базам данных обязательно указывать СУБД" . От этого ответ может оказатся значительно проще.


    Вот примерный синтаксис (должен работать в firebird, с небольшими изменениями в Sybase AS* и DB2 и, возможно, MSSQL):

    WITH
    subq_a (f1, f2, f3 ,f4, f4c) AS ( SELECT f1,f2,f3,f4,count(all *) from tab group by f1,f2,f3,f4),
    subq_b (f1, f2, f3 ,f4, f4c) AS ( SELECT f1,f2,f3,f4,count(all *) from tab group by f1,f2,f3,f4)
    SELECT a.f1,a.f2,a.f3,a.f4
    FROM subq_a a, subq_b b
    where
    a.f1=b.f1 and
    a.f2=b.f2 and
    a.f3=b.f3
    group by a.f1,a.f2,a.f3,a.f4
    having
    a.f4c=max(b.f4c)

    Ответ отправил: PVS@Lviv, Профессионал
    Ответ отправлен: 04.03.2009, 14:02

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 245020 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает Digitall, 2-й класс :
    Здравствуйте, Ole!
    плохо что в вопросе не указана база данных.
    привожу пример для оракла:

    Приложение:

    Ответ отправил: Digitall, 2-й класс
    Ответ отправлен: 04.03.2009, 14:47

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 245024 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 42162:

    Уважаемуе эксперты помогите пожалуйста, нужно создать MDE-файл для преобразованной базы (из Access97 в Access2002) При созданиии файла выходит сообщение об ошибке в Модуле

    Отправлен: 05.05.2006, 17:48
    Вопрос задал: Надежда, Посетитель
    Всего ответов: 1
    Страница вопроса »


    Отвечает Архангельский Андрей Германович, Специалист :
    Здравствуйте, Надежда!

    Именно по этой причине я вообще отказался от Access даже в качестве черновиков.
    Access преобразовывает БД из старой версии в новую только если в ней нет макросов и форм, т.е. чистые данные в таблицах.
    Последний раз, когда мне нужно было вытащить данные из Access проще было написать на дельфи программу, которая соединилась через ADO и выцарапала данные в скрипт.
    -----
    Если дело заслуживает быть сделаным, то оно заслуживает, чтобы его сделали ХОРОШО

    Ответ отправил: Архангельский Андрей Германович, Специалист
    Ответ отправлен: 05.05.2006, 18:08

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 95767 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    подать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2010, Портал RFpro.ru, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2010.6.14 от 03.03.2010

    В избранное