where 절 mysql에서 MAX 함수
max() function을 mysql 쿼리의 where 절에서 사용하려면 어떻게 해야 합니다.
select firstName,Lastname,MAX(id) as max where id=max;
이것은 나에게 오류를 주고 있습니다.
'where 절'의 알 수 없는 열 'max'
집계 함수의 결과를 참조할 수 없습니다(예:MAX())에WHERE동조항SELECT.
이러한 유형의 문제를 해결하기 위한 표준 패턴은 다음과 같은 인라인 뷰를 사용하는 것입니다.
SELECT t.firstName
, t.Lastname
, t.id
FROM mytable t
JOIN ( SELECT MAX(mx.id) AS max_id
FROM mytable mx
) m
ON m.max_id = t.id
이 방법은 지정된 결과를 얻을 수 있는 한 가지 방법일 뿐입니다.동일한 결과를 얻기 위한 몇 가지 다른 접근법이 있으며, 그 중 일부는 다른 접근법보다 훨씬 효율적이지 않을 수 있습니다.다른 답변은 다음과 같은 접근 방식을 보여줍니다.
WHERE t.id = (SELECT MAX(id) FROM ... )
때때로 가장 간단한 접근법은 LIMIT와 함께 ORDER BY를 사용하는 것입니다. (이 구문은 MySQL에 고유합니다.)
SELECT t.firstName
, t.Lastname
, t.id
FROM mytable t
ORDER BY t.id DESC
LIMIT 1
이 경우 하나의 행만 반환되므로 동일한 ID 값을 가진 행이 두 개 이상 있으면 모두 반환되지 않습니다. (첫 번째 쿼리에서는 동일한 ID 값을 가진 모든 행이 반환됩니다.)
이 접근법은 하나 이상의 행을 얻도록 확장될 수 있으며, ID 값이 가장 높은 5개의 행을 다음과 같이 변경하여 얻을 수 있습니다.LIMIT 5.
이 접근 방식의 성능은 특히 사용 가능한 적합한 지수(즉, 다음과 같이)에 따라 달라집니다.idPrimary KEY(기본 키) 또는 다른 인덱스의 선두 열로 표시됩니다.)적합한 인덱스는 이러한 모든 접근 방식을 사용하여 쿼리의 성능을 향상시킬 것입니다.
하위 선택 항목 사용:
SELECT row FROM table WHERE id=(
SELECT max(id) FROM table
)
참고: ID는 고유해야 하며, 그렇지 않으면 여러 행이 반환됩니다.
일부 Mysql 버전에서는 하위 선택 항목 내부에 'limit'이 허용되지 않습니다.당신(그리고 미래의 나)에 대한 나의 대답은 그룹을 사용하는 것입니다.
select firstName,Lastname,id
where {whatever}
group by id
having max(id)
그러면 Aggregate 필드 없이 선택한 영역에서 원하는 것을 반환할 수 있습니다.
SELECT firstName, Lastname, MAX(id) as max WHERE YOUR_CONDITIONS_HERE HAVING id=max(id)
ID가 가장 큰 행의 이름과 성을 원하십니까?
그렇다면 (그리고 FROM 조항이 누락되었습니다):
SELECT firstname, lastname, id
FROM foo
ORDER BY id DESC
LIMIT 1;
사용한 구문이 올바르지 않습니다.쿼리는 다음과 같아야 합니다.
SELECT column_name(s) FROM tablename WHERE id = (SELECT MAX(id) FROM tablename)
이 쿼리를 사용하면 원하는 데이터를 반환할 수 있습니다.foo를 사용 중인 테이블 이름으로 대체합니다.
SQL 쿼리:
select firstName,Lastname, id
from foo
having max(id) = id
열의 별칭으로 'max'라는 단어를 사용하고 있습니다.시도:
MAX(id) as mymax ... WHERE ID - mymax
언급URL : https://stackoverflow.com/questions/22538287/max-function-in-where-clause-mysql
'programing' 카테고리의 다른 글
| 스크립트에서 sql 쿼리를 실행하는 동안 메시지 억제 (0) | 2023.09.14 |
|---|---|
| 블러 이벤트가 클릭 이벤트 작동을 멈추나요? (0) | 2023.09.14 |
| Ember의 모델을 주기적으로 업데이트하는 방법(setInterval 등)? (0) | 2023.09.14 |
| mariadb에서 다른 두 열의 연결인 열을 만들려면 어떻게 해야 합니까? (0) | 2023.09.14 |
| 문자열에 C#의 문자만 포함되어 있는지 확인 (0) | 2023.09.14 |