반응형

카운트 하는 여러가지 방법.

 
전체건수에서 성별 구하는 것은 다른 방법으로도 가능하지만, COUNT로 표현하는 방법으로 작성했다.
(예: SUM( DECODE( H_SEX, '1', 1, 0 ) ) 건수_남 )

통계할 때 사용했었는데 DISTINCT안에 CASE 사용하는 것은 처음인 것 같아서...

 1. COUNT 안에서 CASE 문 사용 가능: 전체 건수로 작성하고자 할때
 2. COUNT 안에 DISTINCT + CASE 사용 가능: 중복제거 후 사용하고자 할때


  

 

SELECT
    COUNT(*) 전체건수
    , COUNT( CASE WHEN H_SEX = '1' THEN H_ID END ) 건수_남
    , COUNT( CASE WHEN H_SEX = '2' THEN H_ID END ) 건수_여
    , COUNT( DISTINCT H_ID ) 대상수
    , COUNT( DISTINCT (CASE WHEN H_SEX = '1' THEN H_ID END) ) 대상_남
    , COUNT( DISTINCT (CASE WHEN H_SEX = '2' THEN H_ID END) ) 대상_여
FROM(
    SELECT 1 SEQ, '201910001' H_ID, '1' H_SEX, 'TEST1' CMT FROM DUAL
    UNION
    SELECT 2 SEQ, '201910001' H_ID, '1' H_SEX, 'TEST2' CMT FROM DUAL
    UNION
    SELECT 3 SEQ, '201910001' H_ID, '1' H_SEX, 'TEST3' CMT FROM DUAL
    UNION
    SELECT 4 SEQ, '201910002' H_ID, '2' H_SEX, 'TEST1' CMT FROM DUAL
    UNION
    SELECT 5 SEQ, '201910002' H_ID, '2' H_SEX, 'TEST2' CMT FROM DUAL
    UNION
    SELECT 6 SEQ, '201910003' H_ID, '1' H_SEX, 'TEST1' CMT FROM DUAL
);
반응형
반응형

이것도 생각보다 자주 사용하는 것 같다.

사용하다 보니 문자열 byte가 4000 기준으로 코드가 다르긴 한데, 난 그냥 4000바이트 이상 조회되는 것으로 대부분 처리한다.

 

1. 컬럼이 4000byte 이상인 경우

// 4000byte 이상
SELECT
     SUBSTR(XMLAGG (XMLELEMENT(X,',', LEVEL ) ORDER BY LEVEL).EXTRACT('//text()'),2) CONTENTS
FROM DUAL 
CONNECT BY LEVEL <= 10;

 


  

 

2. 컬럼이 4000byte 미만인 경우

// 4000byte 미만인 경우
SELECT
    LISTAGG( LEVEL, ',') WITHIN GROUP(ORDER BY LEVEL) LISTS
FROM DUAL
CONNECT BY LEVEL <= 10

 

표현은 동일하지만, 2번째 방법으로 사용할 때는 작은 데이터로만 하길...

반응형
반응형

전화번호의 경우 형식에 맞게 작성해주면 좋으련만, 상황에 따라서 조금 다르게 입력되는 경우가 있다.

처음 개발할 때부터 숫자만 입력하게 만들거나, 기타 다른 것을 입력 못하게 하거나, 혹은 띄어쓰기나 이런 것들을 다 개발해 넣기엔 시간이 없으려나.

간단하게 입력된 데이터를 보고 숫자만 불러와서 형식에 맞게 다시 표시하는 정규식이다.

휴대전화 번호나 집 전화번호 등이 000-0000-0000 등의 형식으로 보인다.


  

 

SELECT
	REGEXP_REPLACE(REGEXP_REPLACE ('010-1111-1111', '[^[:digit:]]'),
    '(^02|050[[:digit:]]{1}|[[:digit:]]{3})([[:digit:]]{3,4})([[:digit:]]{4})', 
    '\1-\2-\3')
FROM DUAL;

 

 

반응형
반응형

매번 UNION, UNION ALL만 사용하다 교집합, 차집합이 생각이 안나서,..

이것도 특별히 자주 사용하는 것은 아닌데, 플래시백 하면 한 번씩 생각나더라. 기존 데이터랑 지금 데이터가 다른 거 찾아낼 때 유용했음.

한두 개야 그냥 하면 되는데 데이터가 많아질수록 편리하게 검사할 수 있음.

https://blog.naver.com/langnei/220708702966

 

오라클 합집합/교집합/차집합 (UNION/UNION ALL/INTERSECT/MINUS)

UNION : 합집합UNION은 두 테이블의 결합을 나타내며, 결합시키는 두 테이블의 중복되지 않은 값...

blog.naver.com


  

 

UNION : 합집합 - UNION은 두 테이블의 결합을 나타내며, 결합시키는 두 테이블의 중복되지 않은 값들을 반환한다.

UNION ALL : 중복을 포함하는 합집합 - UNION과 같으나 두 테이블의 중복되는 값까지 반환한다.


INTERSECT : 교집합 - INTERSECT는 두 행의 집합 중 공통된 행을 반환한다.


MINUS : 차집합 - MINUS는 첫 번째 SELECT문에 의해 반환되는 행 중에서 두 번째 SELECT문에 의해 반환되는 행에 존재하지 않는 행들을 반환한다.

반응형
반응형

이것도... 참... 

별거 아닌데... 안쓰면 잊어버리네...

보통 그냥 == 같이 사용하기도 하는데 어쩔 땐 오류가 발생. 그냥 eq를 넣으면 해결 되는 경우가 종종 발생 되었다.

모르면 또 찾을 것 같아서...

/*
	== 또는 eq
	!= 또는 ne
	< 또는 lt
	> 또는 gt
	<= 또는 le
	>= 또는 ge
*/

 

반응형
반응형

개발자마다 조금 다르게 사용하고, 또 입력된 데이터를 상황에 맞춰 변경할 때가 있다.

SQL쿼리도 그런 경우인데... 멀티 체크를 한 데이터를 하나씩 쪼개는 경우에 사용했다.

진짜 별거 아닌데... 찾으면 나오는 자료인데... 꼭 찾으려고 하면 안나와서 남긴다.

기억하면 될 걸... 그래도 매일 사용하는게 아니라서 그런지.. 자꾸 잊어버리게 된다.


  

 

SELECT 
	REGEXP_SUBSTR(VAL, '[^,]+', 1, LEVEL) VAL
FROM (SELECT '1,2,3,4,5' VAL FROM DUAL)
CONNECT BY REGEXP_SUBSTR(VAL, '[^,]+', 1, LEVEL ) IS NOT NULL
;

한줄에 표시된 '1,2,3,4,5' 를 

1

2

3

4

5

와 같이 한줄로 표시된다.

반응형
반응형
Flutter - 가장 빠른 아름다운 네이티브 앱Flutter(플러터)는 하나의 코드베이스로 모바일, 웹, 데스크톱에서 네이티브로 컴파일 되는 구글의 아름다운 UI 툴킷입니다. 

-Flutter 한글화 사이트 

 안드로이드, iOS를 함께 개발하면 좋겠지만, 혼자서 모든 걸 감당하기엔 역시나 무리다.

그에 따라 새로운 크로스 플랫폼 개발을 위해 알아보는 중 생각보다 구현이 쉬운 Flutter을 알게 되었고, 시작하게 되었다.

한글화 된 부분도 있지만 아직 부족한 것도 많고, 더불어 내 공부를 위해서... 정리가 필요할 것 같아 남겨 놓으려고 한다.

 

Flutter는 Dart 라는 언어를 사용한다.

위키를 보면, 구글에서 만들었고 프론트엔드 구현을 목적으로 개발한 프로그래밍 언어라고 한다. 공개는 2011년 10월에 공개 되었다.

아무것도 모르고 시작하는 것 보다는 나무위키라고 들어가서 확인해 보는게 좋을 것 같다.

 

Dart(프로그래밍 언어) - 나무위키

Dart 네이티브는 모바일, 데스크탑 및 서버 애플리케이션용 네이티브 ARM 또는 X64 시스템 코드로 컴파일 된 Dart 코드를 실행할 수 있게 한다. 모바일 또는 데스크탑, 웹, 임베디드 장치를 대상으로

namu.wiki


1. Flutter 공식: https://flutter.dev/

 

Flutter - Beautiful native apps in record time

Flutter is Google's UI toolkit for crafting beautiful, natively compiled applications for mobile, web, and desktop from a single codebase. Flutter works with existing code, is used by developers and organizations around the world, and is free and open sour

flutter.dev

자세한 내용은 아닌 것 같고, 일단 Flutter 설치 방법이나 기본적인 정보들이 제공된다.

실제 적용해보면 여기서 하는 것보다는 Package Site에서 받아서 설치하고 진행하는게 더 빠른듯하다.

 

2. Flutter 한글: https://flutter-ko.dev/

 

Flutter - 가장 빠른 아름다운 네이티브 앱

Flutter(플러터)는 하나의 코드베이스로 모바일, 웹, 데스크톱에서 네이티브로 컴파일 되는 구글의 아름다운 UI 툴킷입니다. Flutter는 기존 코드와 함께 동작하고, 전세계 개발자와 조직에 쓰이고 ��

flutter-ko.dev

한글화 되어 있어 처음에 진행하기 편리하다.


  

3. Flutter Packages: https://pub.dev/

 

Dart packages

Pub is the package manager for the Dart programming language, containing reusable libraries & packages for Flutter, AngularDart, and general Dart programs.

pub.dev

 

4. Dart 공식: https://dart.dev/

 

Dart programming language

Dart is a client-optimized language for fast apps on any platform

dart.dev

 

반응형
반응형

오즈모 포켓을 2019년 1월에​ 구입하고 나름 잘 쓰고 있다고 생각했는데.

가장 아쉬운 점을 뽑으라고 한다면 카메라을 움직일 수 있는 조이스틱이 없다는 점이였다.


가장 좋은 건 휴대폰에 나오는 조이스틱으로 하는게 가장 좋은 것 같긴 하던데. 

실은 오즈모 포켓에 있어서 가장 갖고 싶었던 건 바로 확장 로드였다.


조이스틱도 되고 삼각대 역활도 하는 그런.


주문은 7월 17일 저녁 9시쯤 했고, 받은건 23일.

주말이 껴있어서 그랬지만, 4일정도면 받는 듯하다.


아, 그리고 지방과 같은 DHL이 다닐 수 없는 곳은 우체국으로 배송이 되는 것 같다.


이 작은 녀석이 96,000원이라니. 배송비 포함하면 11만... ㅎㄷㄷ

배터리도 있고 일단 오즈모 포켓을 조정할 수 있다는 점에서... 

케이스 하단을 열어보면 확장 로드를 보호하는 쿠션이 있다.

그리고 내용물.

설명서, 그리고 제습제?. 확장로드 이렇게만 있다.

손 스크랩이 떡하니 있길래 머가 더 있나 싶었지만.

역시나 아무것도 없다.

설명서랑 확장로드 단 두개뿐. 세우기 위해서 삼각대도 사야...


 연결한 모습. 먼가 잘 어울린다.​


그리고 휴대폰 거치대 안쪽에 위치한 젠더 보관함.

동영상 서비스가 종료되어 해당 콘텐츠를 재생할 수 없습니다.

총평.

1. 생각보다 무거움

2. 오즈모 포켓 배터리 소모가 좀 더 심해짐

3. 확장 로드 펴고 촬영시 더 꿀렁거림

4. 조이스틱 감도가 너무 좋음...

5. 그래도 뭔가 제대로 세팅된 느낌이 듬

6. 여러가지 기능을 사용할 수 있는 점은 분명한 장점


아 그리고 모르는 사람이 은근 많던데...

오즈모 포켓 하단에 케이블로 휴대폰과 연결하면 젠더를 통해서 연결한 것과 똑같이 됨.

무선 모듈이 필요치 않음. 참고 바람.


반응형
반응형

녹차밭에 있어서 역시 5월은 최고의 달인 듯싶다.

5월과 같이 녹차를 잘 표현해주는 계절이 있을까?

 

 

맑은 날 녹차밭은 초록빛 세상과 저 멀리 보이는 득량도.

제2농장에서만 맛볼 수 있는 특별함이 있는 것 같다.

 

 

우연히 이곳에서 셀프 촬영 중인 커플을 보았다.(개인정보를 위해 얼굴을 블러[흐리게] 처리하였음)

하얀 옷과 녹차의 초록색은 너무 잘 어울려 보였다.

 

 

 

 


  

 

 

 

고향에 오는 길에 잠깐 들려봤는데, 역시 나쁘지 않은 곳이다.

뭔가 회복되는 기분이다.

 

 

 

 

반응형
반응형

 벌써 6월이 되었다. 이 곳을 갔을 땐 5월 초였는데. 

바빴다는 가장 좋은 핑계로 미루다 이제야 올리게 되었다.

 

오펜스 파트 2는 이름 그대로 두번째 오펜스 카페라는 뜻인데, 첫 번째의 카페는 광주 동명동에 위치해 있다고 한다.

하지만 파트라는 영단어 특성상 같은 사장님인지 다르지만 분담해서 하는지는 알 수 없었다.

 

이 곳은 예전에 보리밥 뷔페였었다.

첫째가 태어나고 둘째가 생기기전에 한번 왔었는데, 나쁘지 않았지만 사람이 별로 없어서 이러다 문 닫겠다 싶었는데 역시나 오래 버티지는 못한 것 같다.

 

카페로 들어가는 길은 좀 험악하다. 

이 카페의 가장 아쉬운 부분이라고 할 수 있는데, 위치가 솔직히 그렇게 좋지 못하다.

그리고 가는 길 마저도 비포장으로 되어 있고 파여 있는 곳이 많아 가기 불편하다. 더구나 먼지까지..

 

그렇게 우여곡절 끝에 도착하면 오펜스 파트 2 카페가 보인다.

 

이곳에는 다른 건물도 있고(더구나 카페다) 그곳은 오펜스 파트 2보다 일찍 문 열었던 곳인데(내 기억으로 보리밥 뷔페 때도 있었음) 비교가 불가할 정도로 오펜스 파트 2가 사람들이 더 많이 오간다.

 

여러 이유가 있겠지만 가장 큰 이유는 트랜드였을 거라 생각해 본다.

 

오펜스 파트2는 기존의 건물 그대로 사용하고 있는데, 이 곳의 가장 좋은 점은 약간의 뜰과 넓은 1층 그리고 사방이 유리로 되어 있어 전망이 아주 좋다는 점일 듯싶다.

 

건물과 어울릴 법한 작고 빨간 공중전화 박스는 전화박스인지 우체통인지 고민하게 되지만, 그래도 이 곳에서 찍어 올리는 것을 보니 나쁘지 않은 장소인 것 같다.

 

나야 사진을 찍어도 사람이 거의 없는 상태에서 찍다 보니 이쁘게 찍는 건 포기...

 

오펜스 파트 2에서는 잔디밭으로 된 야외 테라스도 있다.

여름엔 아마도 이곳에서 얼마나 있을까 싶은 생각이지만(겨울도 마찬가지) 그래도 앞에 지석천으로 이어지는 하천으로 멋스러움도 있는 것 같다.

 

아 4월에는 꽃가루가 날리니 이용하지 않는 게 좋다.

 

 

그리고 입구에 놓인 저 오토바이.

실제 움직이는지 모르겠지만, 타보고 싶은 욕심은 나더라...

하지만 5월 초이다 보니 역시나 꽃가루가 많이 있던 상황.

 

 

그래도 5월에 방문하는 게 가장 좋은 이유가 아무래도 화창한 날씨와 더불어 그리 덥지도 춥지도 않은 적당한 날씨 때문이 아닌가 싶다.

그리고 무엇보다 안에서 보는 창 밖의 감나무 밭은 초록 물에 들인 듯 아름답게 보이기 때문이다.

 

내부

내부에 들어와서 바로 오른쪽을 보면 여기서 만든 빵과 쿠키를 볼 수 있다.

빵은 오전 11시쯤에 나온다고 한다.

카페에 사람도 역시 11시 전에는 거의 없었다. 우리도 11시 전쯤에 들어갔는데 아무도 없었고, 11시 넘어서니 조금씩 사람들이 방문했었다.

 

카페에 가면 항상 찍게 되는 커피머신. 큰 공간이다 보니 머신도 컸다. 

보통의 작은 카페는 2 구정도 되는 머신을 놓는데 여기는 3구짜리.

 

이 카페에서 가장 좋은 점 중에 하나가 역시나 분위기.

사람이 없어야 이런 것도 찍을 수 있다. 조금만 더 늦었으면 이런 거 촬영하기 힘들었을 듯.

카페는 오전에 일찍 가야 사람 없이 온전한 카페의 모습을 볼 수 있는 것 같다.

 

보통 오펜스에 왔을 때 한 번씩은 무조건 찍고 가는 대형 앰프와 스피커. 

양 옆에 있는데, 은은한 듯 꽉 찬 음악을 들려준다. 

 

작은 소리인 듯 하지만 화장실을 빼고는 어디서든 노래가 들리는 듯하다.

반대편에 있던 다른 스피커.

이곳에서도 노래가 은은하게 나온다.

공간이 넓다 보니 테이블 수도 많다.

보통 이런 중간에 앉지는 않고 창 밖에 보이는 곳으로 다들 가서 앉았다.

 

이 곳이 창밖에 보이는 좌석인데, 마주 보는 게 아니고 말 그대로 창밖을 보는 구조이다.

높은 건물과 나무들이 없어서 초록색이 가득한 감나무 밭과 먼 풍경을 바라보는 게 제법 괜찮은 것 같다.

 

내부 사진.

역시나 사람이 없으니 카페의 구성을 한 번에 확인 가능하다.

광각렌즈로 한컷 촬영.

솔직히 내가 바보라는 생각이 들었던 게, 이 곳에서 광각 사진을 찍고 나서였는데...

항상 조리개를 2.8로 하고 찍었더니 뭉개지는 곳이 많더라.

최대 개방이 2.8이라고 해서 2.8로 찍었다간 날아가는 사진이 많더라.(이걸 지금에야 알았다. 바보같이...)

 

그래서 요즘은 줄여서 촬영하고 있다. 보통 4 정도에 맞춰 놓고 찍게 되더라.

 

아 이건 카페와 관련 없는 개인적인 혼잣말. 혹시나 이걸 보는 사람도 혹시나 광각으로 찍을 생각이 있다면 참고하는 게 좋을 듯...(다 알고 있으려나... 나만 몰랐나?)

 

음료와 디저트를 준비하는 키친은 생각보다 넓어 보였고, 앞에 보이는 케이크는 먹음직스러워 보였다.

11시쯤이라 여기도 오픈은 했지만 준비해야 할 것이 많아서 음료와 디저트가 나오는 시간은 좀 걸렸다.

 

다시 오펜스 파트 2의 내부. 깔끔하게 잘 나왔네.

 

이건 모서리 부근에서 다시 한번.

 

 커다란 스피커와 앰프도 광각으로 다시 찍었고.

 

 

하천 방향으로 앉는 바(Bar) 형태의 테이블. 

커플끼리 와서 앉으면 분위기 있어 보일 듯하다.

 

창 밖이 훤히 보이는 이 곳은 역시나 우월한 개방감으로 시원시원해 보인다.

한 여름은 가장 더우려나...?

 

다시 카페 내부 전체 사진.

 

그리고 나름 핫스폿!

여기에 앉아서 찍는 사람도 많더라.

분위기도 좋고, 감나무 밭도 잘 보이고.

 


  

 

음료, 디저트

음료는 역시나 아이스 아메리카노, 따뜻한 카페라테를 주문하였다.

디저트로는 티라미수와 쿠키.

 

이름이 생각 안나네. 들어간 걸 조합하면 이름이 될 텐데.

바나나 크랜베리 토스트 려나. ㅎㅎ

 

스카치 프렌치토스트였던 것 같은데. 생각이 안 나네. 

적당히 먹을 만하던데, 솔직히 내 입맛에는 그리 매력적인 맛은 아니었음.

생크림이 가득 올라간 허니 토스트가 더 좋은 것 같음.

생각보다 조금 비쌌던 것 같음.

아메리카노도 4,500원이고 카페라테는 5,000원이고. 

두 개만 해서 9,500원이...

 

가격표를 공유하니 참고 바람.

 

기타

말없이 올리는 사진.

 

 

 

 

 

 

 

반응형

+ Recent posts