null 以外の値の組み合わせを使用して MySQL 行をグループ化する方法
P粉002023326
P粉002023326 2023-09-06 21:35:03
0
1
583

グループ化された結果の各列の latest 非 null 値を選択して行をマージ/結合するにはどうすればよいですか?

###ユーザー### ###フルーツ### ###番号### ###単純### ###りんご### ###ヌル### 2022-01-01 ###スイカ### 3 ###ヌル### ジョン ###梨### ###ヌル### 次の方法は機能しません: 結果が次のようになることを願っています: 問題は、COALESCE() 関数が値セットでは機能せず、リストでのみ機能することです。 多くのトピックでは、解決策として COALESCE() の代わりに MIN() または MAX() を使用することが言及されています。しかし、古い値を上書きするには最低値や最高値ではなく新しい値が必要なので、これでは問題は解決しません。
id作成時間 1
2 ジョン32 2022-01-02
ジョン72 2022-01-03 4
2022-01-04 リーリー リーリー
P粉002023326
P粉002023326

全員に返信(1)
P粉979586159

COALESCE() は集計関数ではなく、指定された値のリストでのみ機能するため、この投稿で @jsowa の回避策を見つけました: 「COALESCE」が機能しない理由「GROUP BY」と併用?

COALESCE() の代わりに SUBSTRING_INDEX(GROUP_CONCAT()) を使用できます。

GROUP_CONCAT() の ORDER BY 句に特に注意してください。 欠点は、どの値でも区切り文字が 未使用の 文字でなければならないことです。

リーリー

結果を返す

リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート