0

時間ごとに注文数をカウントする次の関数を使用しようとしています。

SELECT
    COUNT(id) total,
    DATENAME(HOUR, purchased_on) label,
    site
FROM dhs.dbo.orders
WHERE purchased_on >= '01/16/2013'
GROUP BY DATENAME(HOUR, purchased_on), site
ORDER BY label DESC

最高のラベルから最低のラベルの順に並べる必要があるORDERBY句を使用しているにもかかわらず、次の結果が得られます。

total   label   site
2         9     AMAZON
1         9     DHS
2         8     AMAZON
1         7     AMAZON
1         6     AMAZON
1         4     AMAZON
1         12    AMAZON
3         11    AMAZON
1         10    AMAZON
1         10    DHS  

なぜ仕事で注文しないのですか?

4

1 に答える 1

3

DATENAMEを返しますVARCHAR

に置き換えますDATEPART

SELECT  COUNT(id) total,
        DATEPART(HOUR, purchased_on) label,
        site
FROM    dhs.dbo.orders
WHERE   purchased_on >= '01/16/2013'
GROUP BY
        DATEPART(HOUR, purchased_on), site
ORDER BY
        label DESC
于 2013-01-17T17:35:51.797 に答える