묻고 답해요
143만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨초보자를 위한 BigQuery(SQL) 입문
오류
다음과 같이 실행했는데 오류가 뜨는데, 이유가 무엇일까요? SELECT * IF(speed >= 70, "빠름", "느림") AS Speed_Category FROM `inflearn-bigquery-practice.basic.pokemon` Syntax error: Expected end of input but got keyword IF at [3:3]
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part5: 데이터베이스
락과 트랜잭션 격리수준 차이는 뭔가여?
db커넥션 여러개가 접근해야 할때 락을 사용해야 하나여아니면 트랜잭션 격리수준의 높은레벨을 사용해야 할까요 둘의 차이를 모르겠습니다 ㅠ
-
해결됨오라클 SQL 데이터베이스
애플 silicon 컨테이너 실행 시 오타있습니다
jinkyuoung x -> jinkyoung o
-
해결됨실전 jOOQ! Type Safe SQL with Java
build.gradle.kts
plugins { id("org.springframework.boot") version "3.3.0" id("io.spring.dependency-management") version "1.1.5" kotlin("jvm") version "1.9.24" kotlin("plugin.spring") version "1.9.24" id("nu.studer.jooq") version "9.0" } group = "com.sight" version = "0.0.1-SNAPSHOT" java { toolchain { languageVersion = JavaLanguageVersion.of(17) } } repositories { mavenCentral() } dependencies { implementation("org.springframework.boot:spring-boot-starter-jooq") implementation("org.springframework.boot:spring-boot-starter-web") implementation("com.fasterxml.jackson.module:jackson-module-kotlin") implementation("org.jetbrains.kotlin:kotlin-reflect") runtimeOnly("com.mysql:mysql-connector-j") testImplementation("org.springframework.boot:spring-boot-starter-test") testImplementation("org.jetbrains.kotlin:kotlin-test-junit5") testRuntimeOnly("org.junit.platform:junit-platform-launcher") jooqGenerator("com.mysql:mysql-connector-j") jooqGenerator("org.jooq:jooq") jooqGenerator("org.jooq:jooq-meta") } kotlin { compilerOptions { freeCompilerArgs.addAll("-Xjsr305=strict") } } tasks.withType<Test> { useJUnitPlatform() } val dbUser: String = System.getProperty("db-user") ?: "root" val dbPassword: String = System.getProperty("db-passwd") ?: "passwd" jooq { configurations { create("sakilaDB") { generateSchemaSourceOnCompilation.set(false) // 기본적으로 스키마 소스 생성을 비활성화합니다. jooqConfiguration.apply { jdbc.apply { driver = "com.mysql.cj.jdbc.Driver" url = "jdbc:mysql://localhost:3306/sakila" user = dbUser password = dbPassword } generator.apply { name = "org.jooq.codegen.KotlinGenerator" // 코틀린 제너레이터 명시 database.apply { name = "org.jooq.meta.mysql.MySQLDatabase" inputSchema = "sakila" } generate.apply { isDaos = true isRecords = true isFluentSetters = true isJavaTimeTypes = true isDeprecated = false } target.apply { directory = "src/generated" } } } } } } sourceSets { main { kotlin { srcDirs(listOf("src/main/kotlin", "src/generated")) } } } 3.3.0 버전은 jooq 최신버전을 사용하고 있는 것 같아서 group 재설정은 뺐습니다.
-
해결됨실전 jOOQ! Type Safe SQL with Java
마리아 DB 쓰시는분들은 mysql 파일 쓰시면됩니다.
저는 마리아 db 사용해서 mysql 파일 사용하니 잘 됩니다.
-
미해결데이터 분석 SQL Fundamentals
having절에서 alias 사용은 안되는건가요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.Group By 실습 -01 강의 ,1분 20초select deptno, max(sal) as maxsal , min(sal) as minsal, round(avg(sal),2) as avgsal from hr.emp egroup by e.deptno having round(avg(sal), 2) >=2000;avgsal >= 2000 을 사용하려했는데, 안되더군요. 원래 having절에서는 안되나요?
-
해결됨실전 jOOQ! Type Safe SQL with Java
영상 소리가 작아졌습니다.
Sakila DB를 기반으로 DB 구성하기 챕터 영상의 소리가 앞선 영상에 비해 매우 작네요!
-
해결됨장래쌤과 함께하는 쉽고 재미있는 SQL 이야기
regexp like 에 특정 특수기호 포함
안녕하세요 강사님! 컬럼에 특수기호 중 + (플러스) 문자가 포함된 값을 찾으려고하는데요 정규식에 해당 기호를 쓰면 오류가 발생하는데 어떻게 해당 문자만 골라 뽑을 수 있을지 질문드립니다 .
-
해결됨데이터 분석 SQL Fundamentals
데이터엔지니어 역량
안녕하세요. sql기초를 닦고 데이터테크놀리지학과에 재학중인 학생입니다. 제가 궁금한부분은 다음관같아요.백엔드부분은 어디까지 알면 좋을까요?데이터엔지니어를 희망하며 Sql공부중이고,Spark,kafka,airflow같은 부분도 공부를 해야할텐데. 비중을 저는 백엔드(java spring jpa) 보단 당연히 sql,spark,kafka,airflow에 실어야된다고 생각해요. 비중을 이쪽에 실으되, 백엔드(java spring jpa)공부도 하긴해야할텐데 어느정도까지는 그래도 해야된다.할줄알아야한다.이런게 있을까요?아니다. 잘못알고있다.둘다잘해야한다.? 할게많아서 다하기 쉽지 않을것같아서 고민입니다. . Spring jpa도 비중있게 공부해야한다면 지금 조금 학습한상태에서 +스프링db(JdbcTemplate, MyBatis 같은 SQL 매퍼 기술 부터, JPA, 스프링 데이터 JPA, Querydsl, 쓰레드로컬, 스프링aop),스프링활용(스프링 부트와 JPA를 활용해서 웹 애플리케이션 개발, rest api개발),스프링부트, 스프링 데이터jpa, 이정도 계획입니다. 부족할까요? 과할까요정보의 홍수에서 권철님 선생님의 조언이 제 올바른 방향의 길잡이에 큰 도움이 될것같습니다. 감사합니다
-
미해결데이터 분석 SQL Fundamentals
4강, 6강 실습용 스키마 관련강의 재생이 안되요
다른 강의는 재생이되는데, 4강(9분) 6강(4분)은 재생 되지 않습니다. 영상 확인 부탁드립니다. 추가로 다른 강의들도 재생이 안되네요. 이전에 잘만 됬었는데..캐시, 쿠키등 삭제했고 강력 새로고침 해봤고, 다른 브라우저로 이용해보기도 했음에도 안됩니다.
-
미해결[2024 리뉴얼] 처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지]
강의 화면이 안나옵니다.
다수의 강의들이 화면이 아래 그림과 같이 나오지 않습니다. 일부 강의는 잘 나오고 일부 강의는 음성만 나오네요.
-
해결됨초보자를 위한 BigQuery(SQL) 입문
총 정리 문제 풀이 5번에 관해 질문
안녕하세요.총 정리 문제 풀이 5번의 선생님의 쿼리와, 해설을 보기 전에 개인적으로 써본 쿼리의 각각의 결과가 달라 어디서 오류를 범했는지 알고 싶어 질문합니다. 선생님께서 쓰신 쿼리는 다음과 같았습니다.WITH에서 먼저 trainer_pokemon과 pokemon을 JOIN한 후, 마지막에 trainer를 JOIN하셨습니다.결과는 Kyle의 포켓몬 공격력+방어력 총합 1951였습니다.WITH total_stats AS ( SELECT tp.trainer_id, SUM(p.attack + p.defense) AS total_stat, FROM basic.trainer_pokemon AS tp LEFT JOIN basic.pokemon AS p ON tp.pokemon_id = p.id GROUP BY tp.trainer_id ) SELECT t.name, ts.trainer_id, ts.total_stat FROM total_stats AS ts LEFT JOIN basic.trainer AS t ON ts.trainer_id = t.id ORDER BY total_stat DESC LIMIT 1 그리고 저는 다음과 같이 썼습니다.선생님의 순서와 다르게, WITH에서 먼저 trainer_pokemon과 trainer를 JOIN한 후, 마지막에 pokemon을 JOIN했습니다.결과는 Kyle의 포켓몬 공격력+방어력 총합 1856였습니다.WITH pokemon_cnt_table AS( SELECT t.id, t.name, tp.pokemon_id, COUNT(tp.id) AS pokemon_cnt, FROM `basic.trainer_pokemon` AS tp LEFT JOIN `basic.trainer` AS t ON tp.trainer_id = t.id GROUP BY t.id, t.name, tp.pokemon_id ) SELECT pct.id, pct.name, SUM(attack) AS attack_sum, SUM(defense) AS defense_sum, SUM(attack + defense) AS a_plus_d_sum, FROM pokemon_cnt_table AS pct LEFT JOIN `basic.pokemon` AS p ON pct.pokemon_id = p.id GROUP BY pct.id, pct.name ORDER BY a_plus_d_sum DESC LIMIT 1 결과가 달라진 이유에 대해, 제 나름대로 생각해 본 것은, JOIN의 순서가 달라 WITH 내의 1) SELECT, 2) FROM ON의 키도 다른 점이 출력 데이터에 영향을 준 것이 아닐까 하는 것입니다. JOIN의 순서 차이로 결과가 달라질 수 있을까요?제가 작성한 쿼리의 오류에 대한 확인이 번거로우시다면, 결과에 대한 JOIN 순서 차이의 영향 유무에 대해서만 답해 주셔도 감사하겠습니다. 미리 감사합니다.
-
해결됨SQL 시작도 못한 분들 드루와요
빅쿼리 테이블 만들기 오류
안녕하세요. 현재 sql 강좌 수강 중에 빅쿼리 테이블 만들기가 오류가 떠서 질문드립니다.업로드 할 csv 파일은 압축풀고 여러번 업로드 했으나 충돌이 많이 된다고 테이블 생성이 되지 않습니다.csv 파일 자체에 들어가보니, max os ~ 라고 되어 있던데 저는 윈도우 사용자인데 이때 어떻게 오류 해결 해야 하나요? ** 에러 메세지와 이미지 캡쳐본>> Error while reading data, error message: CSV processing encountered too many errors, giving up. Rows: 0; errors: 1; max bad: 0; error percent: 0
-
해결됨초보자를 위한 BigQuery(SQL) 입문
4-7. 조건문 연습 문제 5번에 관한 질문
안녕하세요.조건문 연습 문제 5번의 선생님께서 쓰신 정답에 관해 질문입니다.select 안에, 포획 날짜를 표시하기 위해 원래 basic.trainer_pokemon 안에 존재하는 catch_datetime을 쓰셨는데, Asia/Seoul 시간대로 변경되지 않은 상태를 그대로 쓰신 이유가 있을까요?SELECT id, trainer_id, pokemon_id, catch_datetime, IF (DATE(catch_datetime, "Asia/Seoul") > "2023-01-01", "Recent", "Old") as recent_or_old FROM `basic.trainer_pokemon` if 함수 내에서 수정한 날짜를 보여주기 위해, 똑같이 수정한 날짜를 썼는데, 문제 없을까요?SELECT id, trainer_id, pokemon_id, DATE(catch_datetime, "Asia/Seoul") as corrected_catch_date, IF (DATE(catch_datetime, "Asia/Seoul") > "2023-01-01", "Recent", "Old") as recent_or_old FROM `basic.trainer_pokemon` 미리 감사합니다.
-
해결됨초보자를 위한 BigQuery(SQL) 입문
4-5. 연습 문제 1번의 정답에 관해 질문
안녕하세요, 4-5. 연습 문제 1번(#트레이너가 포켓몬을 포획한 날짜(catch_date)를 기준으로, 2023년 1월에 포획한 포켓몬의 수를 계산해 주세요.)의 정답을 보고 의문이 있어 질문 올립니다. 선생님께선 아래와 같이 쿼리를 작성해 주셨는데요. count 함수의 변수, id는 처음부터 고유한 번호인데 distinct를 걸어주신 이유를 알고 싶습니다. (count 결과는 85)select count(distinct id) as cnt from `basic.trainer_pokemon` where extract (year from datetime(catch_datetime, "Asia/Seoul")) = 2023 and extract (month from datetime(catch_datetime, "Asia/Seoul")) = 1 실험적으로, trainer_id를 변수로 쓴 것과, distinct를 걸어서 trainer_id를 변수로 쓴 것의 결과를 확인해 보니, 각각 85, 48이었습니다.select count(trainer_id) as cnt, count(distinct trainer_id) as distinct_cnt from `basic.trainer_pokemon` where extract (year from datetime(catch_datetime, "Asia/Seoul")) = 2023 and extract (month from datetime(catch_datetime, "Asia/Seoul")) = 1 1명의 트레이너가 2023년 1월에 2마리 이상의 포켓몬을 포획하는 경우도 있을 수 있으니, distinct를 걸어버리면, 1월에 여러 번 포획한 횟수가 1회로 줄어버리지 않을까 생각되는데, 잘못된 곳이 있다면 짚어주셨으면 합니다. 미리 감사합니다.
-
미해결[백문이불여일타] 데이터 분석을 위한 고급 SQL
ERD 읽는법에 추가 질문 있어요
안녕하세요. ERD 읽는법 강의에 사용된 표 자료에서 보면은, ONE - MANY 가 보통 컬럼으로 매치가 되는데테이블 : 테이블로 ONE-MANY가 매치 되는곳이 두군데 있더라구요.employees(one) - orders(many)products(one) - orderdetails (many)그런데 orders 테이블안을 보면 employees를 전체 사용하는 무언가가 있는것이 아닌, employeeID가 FK 되어 있거든요. 그러면 테이블별 매칭이 아닌 employee테이블 내 employeeID 컬럼 (one) - orders테이블 내 employeesid(many)로 연결되어야 하는게 아닌가요?
-
해결됨초보자를 위한 BigQuery(SQL) 입문
as 명명, count 함수 내 변수 선택에 관한 질문
안녕하세요.as로 명명하는 것에 관해 질문드립니다."2-5. 집계(GROUP BY + HAVING + SUM/COUNT)"에서 선생님께선 다음과 같이 쿼리를 작성해주셨는데요.select type1, count(id) as cnt from `basic.pokemon` group by type1 having cnt >= 10 order by cnt desccount(id)를 cnt로 명명한 후, having과 order by에서 그 별명을 이용하여 간단히 입력하신 걸 이해했습니다. 여기서 sql에 익숙해지고자, 여러 시험을 해보았는데, 다음과 같은 쿼리도 같은 결과를 출력할 수 있었습니다.select type1, count(type1) as cnt from `basic.pokemon` group by type1 having count(id) >= 10 order by count(kor_name) descselect 내의 count 괄호 내에는 type1 열을 불러 읽고,having 내의 count 괄호 내에는 id 열을 불러 읽고,order by 내의 count 괄호 내에는 kor_name 열을 불러 읽고, as로 select 내의 count 함수를 따로 명명해주었지만 그 별명을 사용하지는 않았습니다.즉, 각 count 함수의 변수를 모두 전혀 다른 것들을 불러 읽는 엉망진창(...)으로 만들어 보았는데요. 그럼에도 불구하고, 문제 없이 같은 결과가 출력된다는 것은, as는 입력 간편화를 위해 이용하는 것이니, 명명을 하더라도 이용하지 않아도 출력상 문제는 없다고 이해해도 될까요? 그리고 count 내 변수를 랜덤하게 지정해도 같은 결과가 나옴에도 불구하고, id 열을 변수로 쓰는 이유는, 실무에서는 값이 누락되어 있을 가능성이 있을 열이 아닌, 하나의 row마다 반드시 값이 주어지는 열(=id 열)을 쓰는 것이 잘못된 집계를 피하기 위함이라고 이해해도 될까요? 글이 길어졌지만, 답변을 기다립니다.미리 감사합니다.
-
해결됨초보자를 위한 BigQuery(SQL) 입문
쿼리 환경설정 오류
안녕하세요!SELECT(들여쓰기)*FROM 'basic.pokemon'ORDER BY id 와 같이 쿼리를 작성하였는데, 저런 오류가 나는 이유가 무엇일까요...?
-
해결됨초보자를 위한 BigQuery(SQL) 입문
Espanso 설치시 지속적으로 에러가 나서 문의드립니다.
안녕하세요! Espanso 를 윈도우 버전으로 다운로드해서 설치하려고하는데 지속적으로 하기 에러가 나고있습니다. 혹시 제가 뭔가 잘못설치한건지 확인 한번 부탁드립니다!
-
미해결[백문이불여일타] 데이터 분석을 위한 중급 SQL
시간 계산...
안녕하세요. 저는 아래와 같이 interval 앞에 연산기호 '-' 를 넣고,left join 을 이용했는데요.self join 시에 이렇게 사용하면 오답처리될 확률이 높을까요? # Write your MySQL query statement below SELECT t.id as id FROM weather t LEFT JOIN weather y on t.recordDate - interval 1 day = y.recordDate WHERE T.temperature > y.temperature;