URL에 대한 검색 엔진 순위를 비교하고 있는데 URL, 순위, 이전 순위의 3 개 열이 있습니다. 제가하고 싶은 것은 순위가 상승했는지 하락했는지를 나타내는 네 번째 열을 추가하는 것입니다.
예를 들면
URL | Rank | Previous_Rank
example.com/page1 | 2 | 16
example.com/page2 | 2 | 11
example.com/page3 | 1 | 14
example.com/page4 | 1 | 4
example.com/page5 | 101| 7
example.com/page6 | 101| 14
example.com/page7 | 101| 7
example.com/page8 | 6 | 17
example.com/page9 | 10| 17
example.com/page10| 19| 1
다른 열을 반환하고 싶습니다.
URL | Rank | Previous_Rank | Movement
example.com/page1 | 2 | 16 | Up
example.com/page2 | 2 | 11 | Up
example.com/page3 | 1 | 14 | Up
example.com/page4 | 1 | 4 | Up
example.com/page5 | 101| 7 | Down
example.com/page6 | 101| 14 | Down
example.com/page7 | 101| 7 | Down
example.com/page8 | 6 | 17 | Up
example.com/page9 | 10| 17 | Up
example.com/page10| 19| 1 |Down
mysql 인 HeidiSQL을 사용하고 있습니다. 여기에있는 데이터는 더 큰 테이블의 일부이며 다음 SELECT 문과 함께 가져옵니다.
select
URL,
Rank,
Previous_Rank
from URL_Changes
where
date = "2017-06-14"
group by URL
order by 2
;
그래서 내 질문은 추가 열을 다시 가져 오기 위해 select 문을 어떻게 편집합니까?
감사.
CASE
이것에 대한 진술을 사용합니다 .
select
URL,
Rank,
Previous_Rank,
CASE WHEN Rank < Previous_Rank THEN 'Up' WHEN Rank > Previous_Rank THEN 'Down' WHEN Rank = Previous_Rank THEN 'No Change' END AS Movement
from URL_Changes
where
date = "2017-06-14"
group by URL
order by 2
;
MySQL에는 IF()
함수 도 있지만 CASE
거의 모든 RDBMS에서 사용되며 IF()
여러 시나리오를 테스트하기 위해 중첩이 필요하므로 Case
일반적으로 더 나은 선택입니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다