могут ли функции sql, такие как min () или max () разрушить целостность записи - PullRequest
1 голос
/ 23 июля 2010

Могут ли такие функции, как Min () или Max () нарушить целостность записи? Возьмите случай запроса, который я недавно создал:

ВЫБРАТЬ учетную запись, MIN (телефон), MIN (начисляется), MIN (locationid) ИЗ УСТ.

есть ли вероятность, что я случайно смешал свои полевые данные в новую запись? Что, если я изменил одну минуту на максимум? Могу ли я уничтожить целостность записи, если захочу?

Спасибо, Донован

Ответы [ 3 ]

7 голосов
/ 23 июля 2010

Вы фактически не изменяете данные в этом запросе, вы только выбираете или просматриваете их.

Если вы не выполните UPDATE, INSERT или DELETE или не вызовете сохраненный процесс, вы не будете изменять данные.

3 голосов
/ 23 июля 2010

Я не уверен, что вы подразумеваете под разрушением целостности записи, но нет ничего плохого в вызове функций MIN или MAX. Это очень распространенный вид запроса.

Не следует предполагать, что все значения в строке в вашем наборе результатов будут взяты из той же строки в исходной таблице. Значения могут приходить из разных строк. Например, если данные в вашей таблице таковы:

account  phone  chargeid locationid
123      456    10       30
123      456    40       20

Тогда результат будет таким:

account  phone  MIN(chargeid) MIN(locationid)
123      456    10            20

«10» происходит из первого ряда, а «20» - из второго ряда.

Кроме того, использование вами MIN на телефоне кажется ненужным. Вам просто нужно выбрать это поле, так как оно является частью группы:

SELECT account, phone, MIN(chargeid), MIN(locationid)
FROM import1
GROUP BY account, phone
1 голос
/ 23 июля 2010

Полагаю, его вопрос в том, что если бы присутствовали следующие данные

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

вернул бы 2, 111-1111, 7, 6 (7 из charId (2) и 6 из LocationId (3)).

Если это то, что вы спрашиваете, тогда да. Это испортит ваши результаты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...