[SQL 퀴즈!]가입 및 탈퇴 인원을 날짜별로 집계하는 SQL을 작성하십시오.

4853 단어 SQL

입문


나는 며칠 전에 업무상에 쓴 SQL을 문제로 꺼내 보았다.
언뜻 보기에는 매우 간단한 것 같은데, 아마도 의외로 어려운 문제일 것이다.
여러분들 시원하게 SQL로 집계해 주시겠어요!?

요구 사항

  • 사용자 테이블(users)에는 입회일(joined_on)과 퇴회일(left_on)
  • 이 있습니다.
  • 탈퇴하지 않은 사용자의 경우 탈퇴 날짜가 비어 있음
  • 사용자 수의 증감을 확인하기 위해 날짜 단위로 입회한 사용자의 수와 퇴회한 사용자의 수를 일람하고자 한다.어떻게 해야만 얻을 수 있습니까?
  • 예제


    사용자 테이블


    id
    joined_on
    left_on

    2014-08-01
    2014-08-10

    2014-08-01
    2014-08-05

    2014-08-03
    NULL

    2014-08-03
    2014-08-10

    2014-08-10
    NULL

    예상 출력 결과


    date
    joined_count
    left_count
    2014-08-01

    0
    2014-08-03

    0
    2014-08-05
    0

    2014-08-10


    제한 등

  • RDBMS를 PostgreSQL9.2.4로 추천하지만 다른 RDBMS도 사용할 수 있습니다.
  • 스키마 생성을 위한 SQL

    CREATE TABLE users (
      id INTEGER PRIMARY KEY,
      joined_on DATE NOT NULL,
      left_on DATE NULL
    );
    
    INSERT INTO users VALUES (1, '2014-08-01', '2014-08-10');
    INSERT INTO users VALUES (2, '2014-08-01', '2014-08-05');
    INSERT INTO users VALUES (3, '2014-08-03', NULL);
    INSERT INTO users VALUES (4, '2014-08-03', '2014-08-10');
    INSERT INTO users VALUES (5, '2014-08-10', NULL);
    

    해답 방법

  • 집행 방법은 자유롭지만 사용SQL Fiddle은 간단할 수 있다.
  • SQL이 완료되면 gist 또는 SQL Fiddle의 URL을 이 글의 설명에 붙여넣으십시오.방법을 강구할 곳과 호소점이 있다면 자유롭게 하세요.

  • 기타

  • 우승자에게는 좋은 상품이 없다.순위 계획도 없어요.각자 자기 만족의 세계에서 SQL을 만들어 보세요.
  • 나의 해답 예


    나는 이런 느낌으로 해 보았다.
    좀 길지만 보수성과 확장성이 높을 수 있습니다.
    아, 자신의 힘으로 답을 생각하고 싶은 사람은 보지 마세요!!
  • http://sqlfiddle.com/#!12/c861a/1
  • SQL Fiddle이 활성화되지 않으면 켜십시오여기 gist..
  • 마지막


    그럼 여러분, Let's try!!

    과거에 했던 SQL 테스트 문제.


    SQL 문제를 좀 더 풀어보고 싶어요!이런 분은 이쪽 질문에 대답해 주세요.
  • 【SQL 테스트 능력 문제】 현재 부서 소속 직원 일람표를 작성한 SQL
  • [SQL 퀴즈!]마감일이 임박한 이벤트 요약 양식을 작성한 SQL
  • 2014.08.2218:00 추기: 응용 문제


    그날의 회원 수를 표시해 보는 것도 재미있다.
    여기도 해답을 기다려!!
    date
    joined_count
    left_count
    user_count
    2014-08-01

    0

    2014-08-03

    0

    2014-08-05
    0


    2014-08-10


    좋은 웹페이지 즐겨찾기