我將在這個問題的開頭說我對學習 SQL非常陌生,而且很多事情都超出了我的范圍……但我正在嘗試!哈哈
最終,我想要的是超級簡單(著名的遺言),按國家/地區匯總排名前 200 的商家估計銷售額。但是,今晚我遇到的問題是,我要求和的貨幣以字串形式存盤,以各種貨幣型別存盤。
有沒有辦法將這些貨幣價值轉換為數字,這樣我就可以有效地總結這些價值?
這是我希望在 BigQuery 中使用的查詢示例,當我發現字串問題并被阻止時:
select sum (estimated_monthly_sales) as top_200_monthly_sales
from (
select merchant_name,
sum (estimated_monthly_sales) as monthly_sales_est
from `storesList`
where country_code = "AT"
group by 1
order by monthly_sales_est DESC
limit 200)
這是一個示例表:
| 商戶名稱 | 估計_monthly_sales | 國家代碼 |
|---|---|---|
| 一家商店 | 1,450.99 美元 | 我們 |
| B店 | 936.97 歐元 | 在 |
| C店 | 2,879.97 捷克克朗 | 長城 |
| D店 | 2,631.99 美元 | 我們 |
| 電子商店 | 1,234.56 歐元 | 在 |
| F店 | 1,845.97 捷克克朗 | 長城 |
uj5u.com熱心網友回復:
有沒有辦法將這些貨幣價值轉換為數字,這樣我就可以有效地總結這些價值?
以下是如何執行此操作的示例
select round(sum(monthly_sales_est), 2) as top_200_monthly_sales
from (
select merchant_name,
sum (cast(regexp_replace(estimated_monthly_sales, r'[^0-9.]', '') as float64)) as monthly_sales_est
from `storesList`
where country_code = "AT"
group by 1
order by monthly_sales_est DESC
limit 200
)
uj5u.com熱心網友回復:
我認為它可以幫助你。
為了獲得數字貨幣,您首先創建如下功能,并在您的選擇查詢中使用如下..
Create FUNCTION dbo.Getcurrency ( @numericurrency VARCHAR(256) ) RETURNS VARCHAR(256) AS BEGIN DECLARE @intAlpha INT SET @intAlpha = PATINDEX('%[^0-9,.]%', @numericurrency) BEGIN WHILE @intAlpha > 0 BEGIN SET @numericurrency = STUFF(@numericurrency, @intAlpha, 1, '' ) SET @intAlpha = PATINDEX('%[^0-9,.]%', @numericurrency ) END END RETURN ISNULL(@numericurrency,0) END GO從 [Table_name] 中選擇 dbo.Getcurrency(estimated_monthly_sales)
我使用 REF: Query 只從字串中獲取數字
- 在這個只讀取數字不讀取特定貨幣
- 但上面的代碼我修改了變化。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/346145.html
標籤:sql 谷歌-bigquery
上一篇:如何給出一周中的天數
