Category: SQL

  • sqlite에서 import

    비트코인 투자를 하지 않는다. 하지만, 비트코인 가격 변동은 하나의 투자 지표가 될 수 있다.

    과거 지표들을 CSV 파일로 구할 수 있었다.

    미리 만들어준 테이블 구조와 같도록 csv 파일을 변경했다. 그리고 다음과 같이 import 한다.

    sqlite> .mode csv
    sqlite> .import /var/tmp/btc.csv btc_rates

  • postgres

    5분 마다 기록되는 온도가 있다. 그런데 한 번 빠지는 시간이 있다.

    select * from refri where classification = 'cool' and location = 'gross' AND
    time between '2025-10-15 20:00:00' AND '2025-10-15 20:59:00'
    order by time;

    이렇게 24번을 반복하려니 너무 귀찮았다. 코파일럿에게 물어 보았다.

    SELECT date_trunc('hour', time) AS hour,
           COUNT(*) AS count_per_hour
    FROM refri
    WHERE classification = 'cool'
      AND location = 'gross'
      AND time BETWEEN '2025-10-15 00:00:00' AND '2025-10-15 23:59:59'
    GROUP BY hour
    ORDER BY hour;

    UTC로 20시 10분이다. 확인 결과 공유기 재부팅 시간이다. 그래서 재부팅을 하지 않도록 설정을 변경했다.

  • SQLite, CSV

    SQLite 에서 결과를 csv로 저장하는 방법. PostgreSQL에서는 명령어로 가능했었는데 SQLite에서는 직접 명령어로는 안되는 것 같다고 코파일럿이 알려주었다.

    FTP 전송할 때처럼 해봤더니 된다.

    sqlite3 result.db << EOF
    .headers on
    .mode csv
    .output output.csv
    
    SELECT * ~~
    
    EOF

    요런 식으로 쉘을 작성하면 잘 저장된다.

  • [SQLite] vacuum

    SQLite도 vacuum이 있다. 기본적으로 활성화 되지 않는 것 같다.

    방법은 매우 단순하다. SQLite 에서 vacuum을 입력하거나 터미널 입력 창에서 입력해준다.

    # sqlite3 finance_data.db "vacuum;"
    
    or
    
    sqlite> vacuum;