마침내 두 개의 SQL 합계 쿼리 결과를 합산하는 데 성공했습니다. 이 사람을위한 작은 단계 :)
질문은 코드의 마지막 문자 (Z)와 관련이 있습니다 :
SELECT SUM(hr)
FROM (SELECT SUM(amount) AS hr
FROM Try_again.dbo.tuesday_practice_database
WHERE account_name LIKE 'concessions'
UNION
SELECT SUM(amount) AS hr
FROM Try_again.dbo.tuesday_practice_database
WHERE account_name LIKE 'salaries')Z
닫는 괄호 뒤에 무언가가 없으면 코드가 작동하지 않습니다.
왜 그런지 궁금하고 왜 다음에 문자가 있어야하는지 궁금합니다.
캐릭터가 무엇이든 상관없이 코드가 작동합니다. 하지만 비워두면 코드가 깨집니다.
감사합니다
- 답변 # 1
- 답변 # 2
이 작업을 수행하십시오 :
SELECT SUM(amount) as hr FROM Try_again.dbo.tuesday_practice_database WHERE account_name IN ('concessions', 'salaries')
기존 코드에는 버그가 있으며 두 개의 SUM ()이 같은 양이면 통합합니다.
UNION ALL
로이 문제를 해결할 수도 있습니다 그냥UNION
대신 그러나LIKE
이후 조건에%
와 같은 자리 표시자가 없습니다. 또는_
우리는 하나의IN()
로이 모든 일을 더 잘하고 단순화 할 수 있습니다. 하위 쿼리가 필요없는 상태입니다.이제 경기에서 더 많은 차이를 허용하려면 (예 :
그러나 그 모든 단계는 실제 질문입니다. 그LIKE '%concessions%'
) 그리고LIKE '%salaries%'
) 그런 다음UNION ALL
더 도움이됩니다 ... 그냥%
를 선도하는 경고LIKE
의 자리 표시 자 성능은매우 나쁘다이며 가능하면 피해야합니다. 종종 이것은AccountCategories
와 같은 이름의 테이블을 추가하는 것과 같은 방식으로 스키마를 변경하는 것을 의미합니다. 각 계정을 검색어에서 정확하게 타겟팅 할 수있는 특정 카테고리로 그룹화합니다.z
는 무엇입니까? 캐릭터?이 경우별칭입니다. 하위 쿼리를 사용하여 두 개의 작은 쿼리를 통합합니다. 특정 상황에서 SQL 언어에는 하위 쿼리에 이름이 있어야합니다. 여기에는 하위 쿼리 (유도 된 테이블)를
FROM
의 대상으로 사용하는 것이 포함됩니다.JOIN
또는APPLY
표현. 다시는 참조되지 않으므로 원하는 이름을 사용할 수 있습니다. 쿼리 기능에는 문제가되지 않습니다. 따라서z
와 같은 간단한 단일 문자 자리 표시 자 충분합니다.
관련 자료
- sql - 쉼표로 구분 된 값을 반환하는 where 절의 mysql 하위 쿼리
- PHP에서 매번 적어도 하나의 대문자, 소문자, 특수 문자 및 숫자로 임의 암호 생성기를 만드는 방법
- mysql - SELECT 절의 하위 쿼리에서 별칭을 사용하는 방법은 무엇입니까? postgreSQL
- mysql - WHERE 절에서 하위 쿼리를 사용하지만 하위 쿼리 결과 당 하나의 일치로 제한
- sql - where 절에서 하위 쿼리를 사용하여 테이블에서 두 번째로 높은 날짜 선택
- FROM 절의 Android Room 하위 쿼리가 예상대로 작동하지 않습니다
- sql - 조인 절에 대한 테이블 하위 쿼리 만들기
- From 절의 Sybase 하위 쿼리는 SQL Server의 링크 된 서버에서 호출 될 때 어디에 있습니까?
- java - JPQL의 ORDER BY 절에서 서브 쿼리를 재 작성하는 방법
- swift - BETWEEN 절을 사용하여 CoreData SUBQUERY를 만드는 방법은 무엇입니까?
- python - 특정 문자로 시작하는 임의의 CSV 행을 선택하는 방법은 무엇입니까?
- sql - 열 이름 대신 조인 절에서 하위 쿼리 사용
- java - 파이썬만큼 짧은 임의의 문자 생성기를 작성할 가능성이 있습니까?
- sql server - sql - from 절에서 부속 조회로 조회 일부 대체
- 자바에서 임의의 문자 추측 게임을 만드는 방법
- SQL Server 데이터베이스 엔진 원격 연결
- Powershell의 SQL 저장 프로시저 실행 실패, 입력 값과 출력 값이 모두 있습니다.
- sql : 모든 조건이 충족되는 경우에만 결과 반환
- SQL Server: xml 데이터 순서로 정렬된 Row_Number() 순서
- 영구적으로 테이블 이름 SQL 별칭 지정
- SQL 서버: 16진수에서 base64로
- SQL은 ISO_year4wkperiod의 마지막 날짜를 얻습니다.
- sql : 테이블 b에 정확히 일치하는 두 개의 요소가 있는 테이블 a의 요소 수 계산
- SQL에서 정확한 시간의 두 날짜의 차이
- MSSQL에서 값이 0인 경우에도 모든 월(1월부터 12월까지)이 표시되도록 하려면 어떻게 해야 합니까?
더 잘 이해하려면 위의 버전의 검색어를보십시오.동일한 코드이며, 현재 상황을 설명하기 위해 다시 포맷되었습니다. 눈치 채면 부모
FROM
절은 하위 쿼리에서 데이터를 검색합니다. 이러한 맥락에서 SQL은 하위 쿼리에 어떤 종류의이름이 있어야하므로z
해당 요건을 충족하기 위해별칭으로 추가됩니다. 원하는 것은 무엇이든 넣을 수 있지만 이름은 중요하지 않으므로 단일 문자 자리 표시자는 괜찮습니다.다음 쿼리와 같습니다 :
그건 그렇고, 당신은 당신의LIKE
에 와일드 카드를 사용하지 않았습니다 절! 다음과 같이 쿼리를 다시 작성해야한다고 생각합니다.와일드 카드를 사용하지 않으려면
LIKE
를 사용하지 않아야합니다IN
사용 대신이 간단한 것에 다시 쓰십시오 :