выберите топ-10 самых длинных постов
-
29-09-2019 - |
Вопрос
Я пытаюсь просмотреть самые длинные сообщения в stackoverflow, используя:
https://data.stackexchange.com/stackoverflow/query/new
Я делаю:
select max(body) from posts;
и это возвращается:
You'd be looking to static link (as opposed to dynamically link)
I'm not sure how many of the MS redistributables statically link in.
Решение
Тот Самый max
функция возвращает максимальное значение выражения.То, что (я думаю) вам нужно, - это комбинация top
и len(body)
.
select top 10 len(body), Id as [Post Link]
from posts
order by len(body) desc
Другие советы
select top 10 body from posts order by len(body) desc;
Как насчет чего-то вроде
select top 10 len(body) from posts order by len(body) desc
макс. (корпус) Возвращает не самое длинное сообщение, а последнее, если вы сортируете его в алфавитном порядке.в нашем случае это начинается с
Ты бы будьте внимательны ...
МАКС - это агрегатная функция.При работе с типом данных числовой столбец он будет возвращать наибольшее значение.Для символьных столбцов MAX находит наибольшее значение в последовательности сортировки.В любом случае, он вернет только одно значение для каждой группы - если группы не указаны, он вернет только одно значение.
Это оставляет вас с необходимостью получить длину тела, чтобы вы могли упорядочить результаты - у вас есть два варианта:
- ЛЕН возвращает количество символов, а не количество байтов, данного строкового выражения, исключая конечные пробелы.
- ДЛИНА ДАННЫХ возвращает количество байтов, используемых для представления любого выражения.DATALENGTH особенно полезен с типами данных varchar, varbinary, text, image, nvarchar и ntext, поскольку эти типы данных могут хранить данные переменной длины.Длина данных, равная NULL, равна NULL.
Итак, вы хотели бы использовать следующий запрос:
SELECT TOP 10 p.body
FROM POSTS p
ORDER BY DATALENGTH(p.body) DESC
Select Top 10 Title, Len(Body) As BodyLength
From Posts
Order By Len(Body) Desc
Похоже, вы хотите что-то вроде:
выберите текст из 10 лучших публикаций упорядочить по названию (body) desc