sql 질문입니다. 채택완료
</p>
<pre>
SELECT
t.OWNER_PHONE,
t.SHOP_PHONE,
t.MANAGER_PHONE
FROM
table AS t</pre>
<p>
이런식으로 쿼리를 썼습니다.
여기서 owner_phone, shop_phone, manager_phone가 같을수가 있는데 갔다면 중복이라고 출력하고 싶은데 어떻게 해야할까요?
distinct 를 썻엇는데 아예 row가 누락되는것 같앗거든요 도움좀 부탁드립니다.
댓글을 작성하려면 로그인이 필요합니다.
답변 2개
채택된 답변
+20 포인트
5년 전
저는 이런경우 사용자마다 정보를 가지고 오게 만들고 중복여부를 체크합니다.
</p>
<pre>
<code>SELECT
t.OWNER_PHONE,
t.SHOP_PHONE,
t.MANAGER_PHONE,
if (t.OWNER_PHONE = t.SHOP_PHONE,
if (t.OWNER_PHONE = t.MANAGER_PHONE,
'전체중복','소유주-샵중복'),
if(t.SHOP_PHONE = t.MANAGER_PHONE, '샵-매니저중복', '중복없음')
) as "중복여부"
FROM
table AS t</code></pre>
<p>
이런형태로 구성하면
중복여부로 판단할수있습니다.
위에선 한글로표기했지만, 숫자나 코드로체크하길원하면 변경하면되겠죠
로그인 후 평가할 수 있습니다
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
백수1995
5년 전
distinct 는 여러개의 행을 하나로 출력합니다.
님이 원하는 중복이라는 걸 표시하려면 group by 를 써야 합니다.
</p>
<p>SELECT t.OWNER_PHONE, t.SHOP_PHONE, t.MANAGER_PHONE, count(*) as cnt</p>
<p>FROM table AS t</p>
<p>GROUP BY t.OWNER_PHONE, t.SHOP_PHONE, t.MANAGER_PHONE</p>
<p>
해서 cnt 가 1 이상인 경우는 중복인거죠
로그인 후 평가할 수 있습니다
답변에 대한 댓글 2개
h
5년 전
예를 들어 t.OWNER_PHONE, t.SHOP_PHONE, 이 둘이 중복이고 t.MANAGER_PHONE이것은 중복되지 않는다면
전화번호, '중복', 다른전화번호 요롷게 출력하고싶은거거든요
전화번호, '중복', 다른전화번호 요롷게 출력하고싶은거거든요
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인전체 질문 목록
답변대기
답변대기
답변대기
채택
답변대기
답변대기
답변대기
채택
답변대기
답변대기
답변대기
답변대기
답변대기
채택
답변대기
답변대기
채택
답변대기
채택