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이것은 중복되지 않는다면
전화번호, '중복', 다른전화번호 요롷게 출력하고싶은거거든요
전화번호, '중복', 다른전화번호 요롷게 출력하고싶은거거든요
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인전체 질문 목록
채택
답변대기
답변대기
채택
답변대기