ChatGPT로 SQL Query 작성 테스트 및 평가

아티클

아티클 요약

  • ChatGPT를 이용하여 질문을 제공하고 SQL 쿼리를 생성, 퍼포먼스를 비교
  • 오류 발생 시 단순 재시도 요청과 사례 제시가 100% 개선을 보장하지는 않음
  • 대부분 중간 이상의 성과를 내지만, 1393. Capital Gain/Loss에서 반복 오류 발생
  

아티클 보강: 개선 테스트

  • 기사에서는 608. Treenode 항목이 오답을 반환한 경우로 제시됐으나, 현재 테스트하는 경우 정확한 답변으로 보통 이상의 퍼포먼스를 제공
  • ChatGPT로 응답을 생성할 때, 첫 번째 답변이 틀리는 경우 반복 질문하기보다 대화창을 종료하고 다시 질문하는 쪽이 정확한 답변을 도출
  • 반복적인 오류를 만들어내는 1393. Capital Gain/Loss 의 경우 최초 응답은 다음과 같음:

SELECT stock_name, 
       SUM(CASE WHEN operation = 'Sell' THEN -price ELSE price END) AS capital_gain_loss
FROM Stocks
GROUP BY stock_name;

이 경우에는 답이 틀렸다고 지적하거나 사례를 제공하더라도 쿼리가 복잡해지기만 하고, 갈수록 전혀 올바르지 않은 답, 가령 기사에 인용된 바와 같이 28,980과 같은 부정확한 숫자를 생성함.
그러나 ChatGPT가 언어 모델이며, ‘판매’ 같은 단어가 주로 -로 처리됐으리라 가정하여 ChatGPT가 과제의 특수한 문맥을 이해하도록 문장으로 조건을 표기할 수 있음.
즉 “판매하는 경우 대금을 받게 되므로 가격은 양수로 처리(a 'Sell' operation needs to be considered a gain)”라는 조건을 추가하면 답변이 즉시 정확하게 개선됨.

SELECT stock_name,
       SUM(CASE WHEN operation = 'Sell' THEN price ELSE -price END) AS capital_gain_loss
FROM Stocks
GROUP BY stock_name;

해당 쿼리는 테스트를 통과하고, 런타임 또한 821㎳로 상위 36%의 퍼포먼스를 보임. 여기에 명시적 CASE 사용을 추가 요청하는 경우(use the CASE statement with an explicit end) 런타임 468㎳인 상위 0.04% 구문과 동일한 응답을 반환.
 
SELECT stock_name, SUM(Case
When operation='Buy' then -price
When operation='Sell' then price
End) AS capital_gain_loss
FROM stocks
GROUP BY stock_name;
 
이밖에도 LeetCode에서 제공하는 초중급 Python, C++ 코드 작성 과제를 테스트한 결과, 코드에 대한 지식이 전무하더라도 ChatGPT 응답으로 대부분의 테스트를 통과. 결국 ChatGPT 특성을 이해한 프롬프트 작성이 정확한 코드 반환의 관건.

 

연관 아티클

1
1개의 답글

(채용) 콘텐츠 마케터, AI 엔지니어, 백엔드 개발자

지피터스의 수 천개 AI 활용 사례 데이터를 AI로 재가공 할 인재를 찾습니다

👉 이 게시글도 읽어보세요