1

Min() や Max() などの関数は、レコードの整合性を破壊する可能性がありますか? 私が最近作成したクエリの場合を考えてみましょう。

SELECT account, MIN(phone), MIN(chargeid), MIN(locationid) FROM import1 GROUP BY account, phone

意図せずにフィールド データを新しいレコードに混在させる可能性はありますか? Min を Max に変更するとどうなりますか? 選択した場合、記録の完全性を破棄できますか?

ありがとう、ドノバン

4

3 に答える 3

7

そのクエリのデータを実際に変更するのではなく、選択または表示するだけです。

UPDATE、INSERT、または DELETE を実行するか、ストアド プロシージャを呼び出さない限り、データは変更されません。

于 2010-07-23T00:56:21.463 に答える
3

レコードの整合性を破壊するとはどういう意味かわかりませんが、MIN 関数または MAX 関数を呼び出すことに問題はありません。これは非常に一般的な種類のクエリです。

結果セットの行のすべての値が元のテーブルの同じ行から取得されると想定しないでください。値は異なる行から取得できます。たとえば、テーブル内のデータが次の場合:

アカウント 電話番号 料金 ID ロケーション ID
123 456 10 30
123 456 40 20

結果は次のようになります。

アカウント 電話 MIN(chargeid) MIN(locationid)
123 456 10 20

「10」は 1 行目から、「20」は 2 行目から取得されます。

また、電話で MIN を使用する必要はないようです。このフィールドは次のグループの一部であるため、選択する必要があります。

SELECT account, phone, MIN(chargeid), MIN(locationid)
FROM import1
GROUP BY account, phone
于 2010-07-23T00:57:21.603 に答える
1

彼の質問は、次のデータが存在する場合

Account Phone       ChargeId LocationId
1       111-1111    6         8
2       111-1111    7         7
2       111-1111    8         6

2, 111-1111, 7, 6 (chargeId(2) からの 7 と LocationId(3) からの 6) を返しますか?

それがあなたが求めているものなら、はい。それはあなたの結果を台無しにします。

于 2010-07-23T01:03:43.500 に答える