[解決済み】2つの列を分割する方法は?
2022-01-31 12:02:50
質問内容
結合されたテーブルから2つの列を分割しようとしましたが、結果(relative_duration列の値)は常に0です。クエリーは以下の通りです。
SELECT t1.[user_1]
,t1.[user_2]
,t1.[total_duration]
,(t1.total_duration/t2.[total_events_duration]) AS relative_duration
FROM [CDRs].[dbo].[aggregate_monthly_events] AS t1 INNER JOIN [CDRs].[dbo].[user_events_monthly_stats] AS t2 ON t1.[user_1] = t2.[user_1]
テーブルt1からカラムtotal_durationをテーブルt2からカラムtotal_events_durationで分割するために、上記のクエリの何が間違っているのか、どのように修正するのか、誰かご存知でしょうか?
ちなみに、除算を減算に置き換えてみたところ("/"を"-")、その場合、relative_duration 列は 0 ではありません。
解決方法は?
おそらく、これらの列は整数列であり、計算結果が同じ型になるため、それが理由でしょう。
例)このようにすると
SELECT 1 / 2
と入力すると、0となり、これは明らかに本当の答えではありません。 そこで、値を例えば10進数に変換し、代わりにそのデータ型に基づいて計算を行います。
例
SELECT CAST(1 AS DECIMAL) / 2
0.500000を与える
関連
-
[解決済み] DELETE文の競合REFERENCE制約
-
[解決済み] Presto の JSON_EXTRACT で ' ' 文字を含むキーに問題がある。
-
[解決済み] ORA-01821: ISO 8601 のローカルタイム付き日付のフォーマットが認識されないエラー
-
[解決済み] SQL ServerでSELECTからUPDATEする方法とは?
-
[解決済み] PHPでSQLインジェクションを防ぐにはどうしたらいいですか?
-
[解決済み] 複数の列でgroup byを使用する
-
[解決済み] 最初の行への結合方法
-
[解決済み] SQL Serverでレコードを削除した後、IDシードをリセットする。
-
[解決済み] SQLite - UPSERT *not* INSERT or REPLACE
-
[解決済み] SQL select join: すべてのカラムに 'prefix.*' というプレフィックスを付けることは可能ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] バックエンドバージョンでは、データベースのダイアグラムやテーブルのデザインはサポートされていません。
-
[解決済み】SQL Serverは「集約関数やサブクエリを含む式に対して集約関数を実行できない」が、Sybaseはできる。
-
[解決済み] INSERT ステートメントが FOREIGN KEY 制約と競合する - SQL Server
-
[解決済み] ''付近の構文が正しくない
-
[解決済み] 2つの列を分割するには?
-
[解決済み] FROM のサブクエリにはエイリアスが必要です。
-
[解決済み] Ruby On Rails で NuoDB を使用して SQL コマンドを手動で実行する方法
-
[解決済み] CLOBとNCLOBの違いは何ですか?
-
[解決済み] ORA-01821: ISO 8601 のローカルタイム付き日付のフォーマットが認識されないエラー
-
[解決済み] SQLで複数のGROUP BYを使用する場合とは?