SQL вычисляет верхний / нижний предел - какой путь правильный?

Я довольно новичок в этом и читаю книгу по анализу данных, я застрял в понимании того, как он вычисляет верхнюю и нижнюю границы диапазонов значений порядка - я, должно быть, уже некоторое время возвращался на эту страницу.

Я все время использую Excel и подумал, что, возможно, мне лучше набрать его в Excel и попытаться понять его там, разбить его на куски и посмотреть, что я могу из этого сделать.

Мне удалось правильно рассчитать его в Excel, но я все еще пытался понять его полностью (у меня нет формального обучения математике!!), затем я понял, что для меня это немного запутанно, и я мог бы сделать это другой путь.

Приведенные ниже результаты одинаковы для обеих версий кода (насколько я вижу), но мою версию мне легче читать и понимать.

Кто-нибудь может сказать мне, почему это не сработает? Если это не правильно? Есть почему?

КНИГИ ВЕРСИЯ

SELECT lowerbound
    ,upperbound
    ,count(*) AS numorders
    ,min(val)
    ,max(val)
FROM (
    SELECT (floor(val / power(10.0, sign(numdigits) * (numdigits - 1))) * power(10.0, sign(numdigits) * (numdigits - 1))) AS lowerbound
        ,(floor(1 + (val / power(10.0, sign(numdigits) * (numdigits - 1)))) * power(10.0, sign(numdigits) * (numdigits - 1))) AS upperbound
        ,o.*
    FROM (
        SELECT (len(cast(floor(abs(totalprice)) AS INT)) * sign(floor(totalprice))) AS numdigits
            ,totalprice AS val
        FROM orders o
        ) o
    ) o
GROUP BY lowerbound
    ,upperbound
ORDER BY lowerbound

МОЯ ВЕРСИЯ

SELECT lowerbound
    ,upperbound
    ,count(*) AS numorders
    ,min(val)
    ,max(val)
FROM (
    SELECT (left(totalprice,1)*power(10,len(floor(totalprice))-1))/1000 AS lowerbound
        ,((left(totalprice,1)+1)*power(10,len(floor(totalprice))-1))/1000 AS upperbound
        ,totalprice as val
        from orders) o
GROUP BY lowerbound
     ,upperbound
ORDER BY lowerbound

1 ответ

Почему бы вам не использовать Min и Max определенного столбца, чтобы получить верхнюю и нижнюю границу

Другие вопросы по тегам