leetcode 1193.毎月の取引Iは、毎月の国と地域ごとの事務数及びその総額、承認済み事務数及びその総額を調べるためにsqlクエリを作成する。

2545 ワード

Table:Transactions
+---------------------------コロムンName   | Type    | +---------------+---------+ | id。            | 要点     | | country       | varrhar𞓜state         | エンム    | | グループ        | 要点     | | transダテ    | ダテ    | +---------------+---------+ idはこの表のメインキーです。この表には、着信トランザクションに関する情報が含まれています。state列の種類は「[]承認」、「拒否」の一つです。
 
sqlクエリを作成して、毎月と国/地域ごとの事務数とその総額、承認済み事務数とその総額を調べます。
クエリー結果の書式は以下の通りです。
Transactions table:+----------------------------------------------------------------------------------------------------------------------------------------------   | country𞓜state    | amount𞓜トレイ+------------------------------------------------------------------------------------------------------------------+|121  | US      | アプリ1000   | 2018-12-18𞓜122  | US      | declined 1240   | 2018-12-19𞓜123  | US      | approved𞓜2000   | 2019-01-01𞓜124  | DE。      | approved𞓜2000   | 2019-01-07|+--------------------------------------------------------------------------++
Result table:+----------------------------------------------------------------------------------------------------------------------------------------------------------------    | country𞓜transky approvedcaucount trans trans aut approved+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------  | US      | 2           | 1              | 3000               | 1000                  | | 2019-01  | US      | 1           | 1              | 2000               | 2000                  | | 2019-01  | DE。      | 1           | 1              | 2000               | 2000                  | +----------+---------+-------------+----------------+---------------
ソース:スナップリンク:https://leetcode-cn.com/problems/monthly-transactions-i 著作権はネットの所有権になります。商業転載は公式授権に連絡してください。商業転載ではないので、出典を明記してください。
この問題は難しくないです
コード
select date_format(trans_date,'%Y-%m') as month, country, count(*) as trans_count, count(if(state="approved",1,null)) as approved_count, sum(amount) as trans_total_amount, sum(if(state='approved',amount, 0)) AS approved_total_amount
from Transactions
group by 
month,country
datemuformat DATEuFOREMAT関数は、異なるフォーマットで日付/時間データを表示するために使用されます。
DATEKU FOREMAT(date、format)
datega format(date、'%Y-%m')
ここのYは大文字であれば、2018年のように、小文字であれば、年の後の二人です。18のように。
count(if(state=「approved」,1,null)
sum(if(state=「approved」,amount,0)