admin / 31.10.2018
Если вы используете SQL 2005, вы можете сделать что-то вроде этого …
Если ваш RankCriteria имеет связи, вы можете вернуть более 10 строк, и решение Мэтта может быть лучше для вас.
Это работает на SQL Server 2005 (отредактировано с учетом вашего разъяснения):
Я делаю это так:
update: Этот пример GROUP BY работает только в MySQL и SQLite, потому что эти базы данных более разрешительны, чем стандартный SQL в отношении GROUP BY. Большинство реализаций SQL требуют, чтобы все столбцы в списке выбора, которые не являются частью агрегированного выражения, также находятся в GROUP BY.
Я знаю, что этот поток немного стар, но я столкнулся с подобной проблемой (выберите новейшую статью из каждой категории), и это решение, с которым я столкнулся:
Это очень похоже на решение Даррела, но преодолевает проблему RANK, которая может вернуть больше строк, чем предполагалось.
Может ли работать оператор UNION ? У вас есть один SELECT для каждой секции, затем СОЕДИНЯЙТЕ их вместе. Полагаю, что это будет работать только для фиксированного количества разделов.
Если вы хотите создать вывод, сгруппированный по разделу, отображая только верхние n записей из каждого раздела, что-то вроде этого:
… тогда следующее должно работать в общих чертах со всеми базами данных SQL. Если вы хотите 10 лучших, просто измените 2 на 10 в конец запроса.
Установить:
Вы можете попробовать этот подход. Этот запрос возвращает 10 наиболее населенных городов для каждой страны.
Previous / Next / Up / Table of Contents
Содержание
Все математические функции в случае ошибки возвращают .
Чтобы округление всегда происходило только в одном направлении, необходимо использовать вместо данной хорошо определенные функции, такие как или .
mysql> SELECT LEAST(2,0); -> 0 mysql> SELECT LEAST(34.0,3.0,5.0,767.0); -> 3.0 mysql> SELECT LEAST(«B»,»A»,»C»); -> «A» В версиях MySQL до 3.22.5 можно использовать MIN() вместо LEAST.
Top / Previous / Next / Up / Table of Contents
Собственно случайная выборка лежит в основе всех остальных типов выборки, которые будут рассмотрены далее. Для организации простых схем отбора необходима информация обо всех элементах генеральной совокупности или хотя бы их перечень. Основой выборки могут служить алфавитные списки сотрудников учреждения, номера документов, по которым можно идентифицировать определенные единицы и т.п. По сформированной основе выборки легко реализовать процедуру простого случайного отбора. Для этого требуется соблюдение равенства шансов попадания единиц отбора в выборочную совокупность.
Выделяют простой случайный бесповторный отбор и простой случайный повторный отбор. При повторном отборе каждый выбранный элемент возвращается в генеральную совокупность. При бесповторном отборе выбранный элемент не возвращается в генеральную совокупность.
К основным способам практической реализации собственно случайной выборки относятся:
1. Метод жеребьевки. Каждый элемент генеральной совокупности заносится на бумажку (это могут быть фамилии, адреса, просто номера (в этом случае выпавшие номера ставят в соответствие с людьми в списках) и т.д.), затем бумажки помещаются в барабан, перемешиваются и, не глядя, вытаскиваются.
2. Метод таблицы случайных чисел. Начиная с любого места таблицы, берем необходимое количество следующих друг за другом чисел. Эти числа и будут номерами людей в списке, которых следует отобрать в выборку (числа, превышающие численность генеральной совокупности, опускаются).
3. Метод генератора случайных чисел. Это то же самое, что и таблицы случайных чисел, только числа вырабатываются компьютером.
Применение основных положений математической статистики позволяет при условии реализации случайного отбора достичь, по крайней мере, двух целей:
1) По заданной априорно необходимой степени точности выводов (формализуемой с помощью понятия доверительной вероятности) найти возможные интервалы изменения характеристик генеральной совокупности (доверительные интервалы), и наоборот, рассчитать доверительную вероятность отклонения характеристики генеральной совокупности от выборочной по заданной величине доверительного интервала.
2) Найти объем планируемой выборки, позволяющий достигнуть в пределах требуемой точности расчета выборочных характеристик необходимую доверительную вероятность.
В основе теоретического обоснования выборочного метода лежит так называемый закон больших чисел, позволяющий с определеннойвероятностью ( ) утверждать, что для изучаемого признака отклонение выборочной средней (
) от генеральной (
) не превысит некоторой величины (
), называемой предельной ошибкой выборки. В одной из формулировок это утверждение записывается следующим образом:
.
Опуская процедуру вывода, будем считать, что для повторного отбора и
для бесповторного отбора,
где — числа, определяемые по таблице критических точек стандартного нормального распределения на основании задаваемой доверительной вероятности;
— дисперсия;
— объем выборки;
— объем генеральной совокупности.
Соответственно для повторного отбора и
для бесповторного отбора.
Для нахождения объема выборки необходимо знать выборочное значение дисперсии признака . Его можно оценить несколькими способами.
1) Отобрать некоторое количество единиц из генеральной совокупности. Рассчитать по полученной выборочной совокупности
. Рассчитать необходимый объем
выборочной совокупности и добрать недостающее число элементов
.
2) Воспользоваться результатами предыдущих исследований (если таковые проводились).
3) Для биномиального распределения , где
— доля признака.
Плюсом данного метода является полное соблюдения принципа случайности и, как следствие — избежание систематических ошибок.
Случайная выборка обладает рядом недостатков, которые затрудняют ее применение на практике. Эти недостатки можно представить в трех пунктах:
1. Необходимость наличия списка элементов генеральной совокупности. Обычно элементами генеральной совокупности являются люди. В этом случаев качестве списка могут выступать адреса, телефоны и т.д. Трудность здесь заключается в том, что получить такой список далеко не всегда представляется возможным. Следовательно, в тех случаях, когда невозможно получить список элементов генеральной совокупности, невозможно проводить и случайный отбор.
2. Сложность проведения опроса. Процедура опроса при случайном отборе является очень громоздкой и требующей много времени. Ведь в результате случайного отбора исследователь получает на выходе список фамилий респондентов (телефонов, адресов и т.д.), которых необходимо опросить. Иными словами, интервьюерам приходится «бегать» за каждым респондентом и добиваться от него согласия ответить на «парочку вопросов».
Осложняет дело и то, что респондентов порой бывает не так просто достать; в случае отсутствия респондента его приходится посещать по нескольку раз (по крайней мере, не менее трех раз).
Все вышеперечисленное ведет к повышенным временным затратам на проведение опроса. Временные затраты можно уменьшить только благодаря привлечению дополнительных интервьюеров, т.е. только за счет дополнительных денежных расходов. Помимо этого возникает еще так называемая проблема неответивших.
3. Сравнительно большой объем выборки. Для получения результатов со сравнительно высокой степенью точности собственно случайный отбор требует достаточно большого объема выборки по сравнению с другими видами отбора. Другими словами, случайный отбор обладает меньшей степенью точности, что, в конечном счете, является причиной его меньшей эффективности.
⇐ Предыдущая123456Следующая ⇒
Дата публикования: 2015-04-06; Прочитано: 541 | Нарушение авторского права страницы
В одной из предыдущих статей, посвящённых SQL-запросу на выборку записей из таблицы, мы с Вами разобрали возможность считывания данных из таблиц. И, в принципе, этого вполне достаточно для успешного использования базы данных. Однако, иногда наиболее рационально ограничить число результирующих записей, и как раз о том, как это сделать, мы и поговорим ниже.
Давайте сразу рассмотрим запрос SQL на выборку определённого числа записей:
Данным запросом мы получим 10 первых записей. Все остальные отпадут. Изменение от обычного SQL-запроса на выборку данных состоит только в параметре «LIMIT«.
Число, которое идёт за ним, сообщает, какое количество записей мы хотим получить, и в нашем случае — это 10.
Также существует возможность задавать после «LIMIT» два числа:
Данный SQL-запрос вернёт записи, начиная с 10-го номера включительно в количестве 20-ти штук. То есть первое число означает, с какой записи надо формировать результат выборки, а второе число означает, какое количество записей всего должно быть.
Собственно, это всё, что необходимо для выборки определённого числа записей. Используется это очень часто, например, при выводе последних 10-ти зарегистрированных пользователях. Или при выводе 5-ти свежих статей (как на главной странице моего сайта), или в других аналогичных ситуациях.
Создано 18.01.2011 21:35:07
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
Она выглядит вот так:
Она выглядит вот так: Как создать свой сайт
FILED UNDER : IT