最初の MySQL クエリは正常に動作しますが、お金のように見えるようにフォーマットされておらず、ドルだけになっています。2 番目のものは正しく書式設定されていますが、ORDER を無視して、order に average_sales を残していません。CONCACT と FORMAT を使用すると問題が発生する可能性はありますか? ありがとう!
最初のもの、注文は正しいです:
select Region,AVG(sales) as 'Average_Sales_by_Region', count(*) as '# of Dist in state'
from dist, Regions_US
where dist.state=Regions_US.State
group by Region
ORDER BY Average_Sales_by_Region DESC;
+--------------------+-------------------------------+-------------------------+
| Region | Average_Sales_by_Region | # of Dist in state |
+--------------------+-------------------------------+-------------------------+
| Mountain | 20216.2162 | 74 |
| West North Central | 18267.5000 | 40 |
| South Atlantic | 16225.2809 | 178 |
| East South Central | 14966.6667 | 30 |
| West South Central | 13704.3840 | 125 |
| East North Central | 12668.3544 | 79 |
| New England | 11915.6250 | 32 |
| Pacific | 11552.8083 | 120 |
| Middle Atlantic | 10291.6031 | 131 |
| Alaska-Hawaii | 8150.0000 | 4 |
+--------------------+-------------------------------+-------------------------+
しかし、Average_Sales_by_Region がセントなしでドル金額を表示するように変更するように依頼されました。したがって、20216.2162 の一番上の数字は 20,216 ドルである必要があります。
したがって、お金を正しくフォーマットしている間、私の2番目のものは、注文を無視します:
select Region,CONCAT('$', FORMAT(AVG(sales), 0)) as 'Average_Sales_by_Region', count(*) as '# of Dist in state'
from dist, Regions_US
where dist.state=Regions_US.State
group by Region
ORDER BY Average_Sales_by_Region DESC;
+--------------------+-------------------------------+-------------------------+
| Region | Average_Sales_by_Region | # of Dist in state |
+--------------------+-------------------------------+-------------------------+
| Alaska-Hawaii | $8,150 | 4 |
| Mountain | $20,216 | 74 |
| West North Central | $18,268 | 40 |
| South Atlantic | $16,225 | 178 |
| East South Central | $14,967 | 30 |
| West South Central | $13,704 | 125 |
| East North Central | $12,668 | 79 |
| New England | $11,916 | 32 |
| Pacific | $11,553 | 120 |
| Middle Atlantic | $10,292 | 131 |
+--------------------+-------------------------------+-------------------------+
ここで立ち往生しています。なぜ ORDER BY Average_Sales_by_Region DESC が最初のもので機能するのかわかりませんが、2 つ目では機能しません。唯一の違いは、AVG(sales) の代わりに CONCAT('$', FORMAT(AVG(sales), 0)) を使用することです。ありがとう!