출처 : https://gent.tistory.com/516

 

 

 

 

 

 

 

SQL Server에서는 비율, 백분율(%)을 구하기 위해서는 OVER 절을 사용하여 전체 합계를 구한다면 연산을 하면 쉽게 해당 값을 구할 수 있다. 오라클의 RATIO_TO_REPORT 함수와 같은 비율을 구하는 함수가 존재하지 않기 때문에 직접 연산식을 만들어야 한다. 아래의 예제를 충분히 이해하면 쉽게 문제를 해결할 수 있을 것이다.

 

MSSQL 비율, 백분율 구하기

목차
  1. 비율 구하기
  2. 백분율(%) 구하기
  3. (활용 예제) 그룹별 백분율(%) 구하기

 

비율 구하기

SELECT ename
     , sal
     , CONVERT(float, sal) / SUM(sal) OVER() AS sal_ratio
  FROM emp
 WHERE job = 'SALESMAN'

 

 

 

비율 = 자신의 값 / 전체 합계

 

CONVER(float, sal) 

MSSQL에서는 정수(피제수)와 정수(제수)를 나누면 소수점 이하의 값이 반환되지 않는다. 피제수와 제수 중 하나 이상의 값을 실수(소수점)로 형 변환을 하고 연산을 해야 소수점 이하의 값을 반환받을 수 있다.

 

SUM(sal) OVER()

OVER 절을 사용하면 조회된 전체 데이터의 합계를 구할 수 있다.

 

백분율(%) 구하기

SELECT ename
     , sal
     , ROUND(CONVERT(float, sal) / SUM(sal) OVER(), 2) * 100 AS sal_percent
  FROM emp
 WHERE job = 'SALESMAN'

 

 

 

백분율(%) = 자신의 값 / 전체 합계 * 100

 

ROUND(비율, 2) * 100

비율의 소수점 2자리까지 반올림하여 자른 다음 100으로 곱하면 백분율을 구할 수 있다.

ROUND(비율 * 100, 2)와 동일한 결과를 얻을 수 있다.

 

(활용 예제) 그룹별 백분율(%) 구하기 

직업 그룹별 급여 백분율(%) 구하기

SELECT job
     , sum_sal
     , ROUND(CONVERT(float, sum_sal) / SUM(sum_sal) OVER(), 2) * 100 AS sal_percent
  FROM (
         SELECT job
              , SUM(sal) AS sum_sal
           FROM emp
          GROUP BY job
       ) AS emp_job

 

 

 

직업(job)별로 합산을 인라인 뷰로 사용하여 다시 한번 연산을 하면 직업별로 백분율을 구할 수 있다.

 

직업 그룹별 급여 백분율(%)  및 합계 표시하기

SELECT IIF(GROUPING_ID(job) = 1, '합계', job) AS job
     , SUM(sal) AS sum_sal
     , CONCAT(ROUND(SUM(sal) / MAX(total_sal), 2) * 100, '%') AS sal_percent
  FROM (
         SELECT job
              , CONVERT(float, sal) AS sal
              , SUM(sal) OVER() AS total_sal
           FROM emp
       ) AS emp_job
  GROUP BY ROLLUP(job)

 

 

 

ROLLUP를 사용하여 전체 합계 및 전체 백분율을 표시할 수 있다.

 

CONCAT(백분율, '%')

CONCAT 함수를 사용하면 백분율 값에 '%' 문자를 쉽게 붙일 수 있다. (예, 21%, 100%)

Posted by 요지
,

 

 

 

 

 

 

 

----------------------------------

아래코드로 해결

 

일반 스레드를 사용하면  위의 에러메세지가 발생했다. 

스레드발생시  STA(단일 스레드 아파트) 모드로 해결된다.

 

 

Main()
{
Thread = new Thread(new ThreadStart(ThreadFunc));
Thread .SetApartmentState(ApartmentState.STA);
Thread .Start();
}

 

 

void ThreadFunc()
{
//작업내용
}

 

 

 

 

 

 

--> 참고

 

ApartmentState

Thread 클래스에서 ApartmentState라는 것이 있다. VB6에서는 STA만을 지원했다는 것은 익히 알려진 사실이다. 굳이 여기서 VB6를 언급하는 것은 VB6로 작성한 컴포넌트를 닷넷에서 사용할 경우에는 이 ApartmentState를 특별히 지정할 필요가 있다. 이 속성은 COM과의 하위 호환성을 위해서 제공된다고 생각하면 된다.

STA와 MTA

ApartmentState는 STA와 MTA 구조가 있는데, Single Threaded Apartment라는 것은 하나의 쓰레드가 아파트를 소유하는 구조를 갖는다. 즉, 멀티 쓰레드를 제공할 수 없는 구조로 되어 있다. MTA는 Multi Threaded Apartment로 되어 있으며, 하나의 아파트에 여러 쓰레드가 세들어 살 수 있는 구조를 갖으며, 각각의 쓰레드가 독립된 방을 갖는 것이 허용된다. 즉, 멀티 쓰레드를 제공하기에 적합한 구조라고 할 수 있다. 이들을 지정하는 것은 다음과 같다.

    Thread.CurrentThread.ApartmentState = ApartmentState.MTA;
    Thread.CurrentThread.AprartmentState = ApartmentState.STA;

이와 같이 지정하는 방법도 있으며, 특성(attribute)을 사용하여 지정하는 방법도 있다. 이들은 System.STAThreadAttribute와 System.MTAThreadAttribute에 정의되어 있으며, 메소드 앞에 [STAThread] 또는 [MTAThread]와 같이 지정하면 된다. 주의할 점은 이미 시작된 쓰레드에 대해서는 아파트먼트를 지정할 수 없으므로 쓰레드를 시작하기 전(Thread.Start()를 호출하기 전)에 설정해야 한다.

닷넷에서는 MTAThread가 기본 설정이며, 이는 COM 객체와도 잘 맞는다. 다만, VB6로 작성한 DLL에 대해서만 호환성을 위해 STAThread를 사용하여 COM 객체에 대한 현재 쓰레드를 STA로 설정하도록 해야한다.

 

 

Posted by 요지
,

 

델리게이트(delegate)

delegate를 번역하면 "대리자"입니다. 한마디로 무엇인가를 대신해 준다는 거죠! C#에서 delegate는 메소드를 대신 호출해 줍니다.

delegate 선언 형식

한정자 delegate 반환타입 델리게이트명 (매개변수 ..);

delegate 키워드를 제외하면, 메소드 선언 형식과 동일하다.

★ delegate는 메소드를 대신 호출하기 때문에 매개변수의 형식과 개수, 반환형이 일치해야 한다!

..................................

Posted by 요지
,

출처 : https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=diceworld&logNo=220238771371 

 

 

 

 

REPLICATE 

 

--> 문자열 값을 지정된 횟수만큼 반복합니다.

--> REPLICATE('문자열', [반복 횟수])

 

 

 

ex) 

   SELECT REPLICATE('REPLICATE ', 2) AS 결과
결과
REPLICATE REPLICATE

 

Posted by 요지
,

출처 : https://wkdus0608.tistory.com/entry/%EB%94%A5-%EB%9F%AC%EB%8B%9D-vs-%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-%EC%96%B4%EB%96%A4-%EC%B0%A8%EC%9D%B4%EC%A0%90%EC%9D%B4-%EC%9E%88%EC%9D%84%EA%B9%8C

 

 

 

딥 러닝 vs 머신러닝 차이점 요약

  1. 딥러닝과 머신러닝은 기계학습의 일종으로 인공지능의 하위 개념이다.
  2. 머신러닝은 인간이 데이터 분석의 힌트를 알려준 후 분석하는 학습방법이고 딥러닝은 처음부터 기계가 학습하는 구조이다.
  3. 머신러닝은 상대적으로 컴퓨팅 능력을 덜 필요로 한다. 딥러닝은 일반적으로 인간이 개입해야 될 상황이 적다.
  4. 딥러닝은 머신러닝이 쉽게 할 수 없는 이미지, 비디오, 비정형 데이터를 분석할 수 있다.
  5. 앞으로 있을 모든 산업은 머신러닝과 딥러닝을 수반하게 될 것이다.

 

 

머신러닝이란?

 

머신러닝(machine learning)은 인공지능(AI)과 컴퓨터 과학의 한 분야로, 인간이 배우는 방식을 모방하기 위해 데이터와 알고리즘을 집중적으로 사용함으로써 그 정확도를 점차 향상한다. 향후 몇십 년 동안, 머신러닝 등의 기술 발전은 넷플릭스의 추천 알고리즘이나 자율주행 자동차와 같이 오늘날 우리가 알고 있는 몇몇 혁신적인 서비스들을 만든다.

머신러닝에 대해 더 알고 싶다면 아래 링크에 자세하게 설명해 두었으니 보는 것을 추천한다.

 

머신러닝(Machine Learning)은 무엇일까? - 왜 중요한가?

머신러닝이란 무엇인가? 머신러닝(machine learning)은 인공지능(AI)과 컴퓨터 과학의 한 분야로, 인간이 배우는 방식을 모방하기 위해 데이터와 알고리즘을 집중적으로 사용함으로써 그 정확도를

wkdus0608.tistory.com

 

딥러닝이란?

 

딥러닝(Deep Learning)은 컴퓨터가 스스로 데이터에서 특징을 추출하는 기계학습 기법이다. 예를 들어 딥러닝은 자율주행 자동차의 핵심 기술로 정지 신호를 인식하거나 보행자와 가로등을 구분할 수 있다. 그리고 요즘 스마트폰, 태블릿, TV와 같은 기기에서 음성 컨트롤 기능이 많이 발전하고 있는데 딥러닝이 이 기술의 핵심이라고 할 수 있다. 딥러닝에서 컴퓨터는 이미지, 텍스트 또는 음성을 분류하는 법을 배운다. 딥러닝으로 만든 모델은 높은 정확도를 가지고 있고, 때로는 인간 수준의 성능을 능가하기도 한다.

딥러닝에 대해 더 알고 싶다면 아래 링크에 자세하게 설명해 두었으니 보는 것을 추천한다.

 

딥러닝(Deep Learning)은 무엇일까?

딥러닝이란? (딥러닝 개념) 옛날에는 불가능했던 것들을 가능하게 만들어줘서 딥러닝은 최근 많은 관심을 받고 있다. 딥러닝(Deep Learning)은 컴퓨터가 스스로 데이터에서 특징을 추출하는 기계학

wkdus0608.tistory.com

 

 

머신러닝 VS 딥러닝의 5가지 주요 차이점

 

머신러닝과 딥러닝의 차이점

1. 인간의 개입

머신러닝은 지속적인 인간의 개입이 필요하다. 딥러닝은 설정하기가 더 복잡하지만 그 이후에는 사람이 개입을 하지 않아도 된다.

 

2. 하드웨어

머신러닝은 딥러닝 알고리즘보다 덜 복잡한 경향이 있고 기존 컴퓨터에서 실행할 수 있는 경우가 많지만 딥러닝 시스템은 훨씬 더 강력한 하드웨어를 필요로 한다. 

 

3. 시간

머신러닝 시스템은 빠르게 설정하고 작동할 수 있지만, 결과가 제한적일 수 있다. 딥러닝 시스템은 설정하는 데 더 많은 시간이 걸리지만 즉각적으로 결과를 창출할 수 있고 더 많은 데이터를 사용할 수 있게 되면 시간이 지남에 따라 품질이 개선될 가능성이 있다.

 

4. 알고리즘

머신러닝은 구조화된 데이터를 필요로 하고 전통적인 알고리즘을 사용한다. 딥러닝은 신경망을 채용하며, 대량의 비정형 데이터를 수용하도록 구축된다.

 

5. 사용되는 곳

머신러닝은 이미 당신의 이메일 받은 편지함, 은행, 그리고 진료실에서 사용되고 있다. 딥러닝 기술은 자율주행차나 첨단 수술을 수행하는 로봇처럼 더욱 복잡하고 자율적인 프로그램을 가능하게 한다.

 

 

 

 

------------------------------------------------------------------------------------------------------------------------------------

다른글

 

출처 : https://hongong.hanbit.co.kr/ai-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80-%EC%9D%B8%EA%B3%B5%EC%A7%80%EB%8A%A5-%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-%EB%94%A5%EB%9F%AC%EB%8B%9D-%EC%B0%A8%EC%9D%B4%EC%A0%90-%EC%B4%9D%EC%A0%95%EB%A6%AC/

 

[AI란 무엇인가] 인공지능 머신러닝 딥러닝 차이점 총정리 혼자 공부하는 책

[AI란 무엇인가] 인공지능 머신러닝 딥러닝 차이점 총정리 두 줄 요약: ‘인공지능 > 머신러닝 > 딥러닝 순서로 범위가 크다’ 라고 이해하시면 편합니다.인공지능은 머신러닝과 딥러닝을 포괄하

hongong.hanbit.co.kr

 

 

 

두 줄 요약: ‘인공지능 > 머신러닝 > 딥러닝 순서로 범위가 크다’ 라고 이해하시면 편합니다.
인공지능은 머신러닝과 딥러닝을 포괄하는 개념!

인공지능, 머신러닝, 딥러닝! 많이 들어봤지만 정확하게 개념이 잡혀있지 않은 분들을 위해 각각 무엇인지 알아보고 그 차이를 간단하게 정리해보겠습니다.

인공지능이 무엇이라고 설명하지 않아도 무엇인지 감이 오실 거예요.
우리가 사는 세상에는 이미 인공지능이 다양하게 생활 속 깊숙이 들어와 있거든요.

몇 가지 생활 속의 인공지능을 소개해 드리겠습니다.
이미 알고 있거나, 친숙한 서비스와 브랜드가 있을 거예요.

 

 

🧠생활 속 인공지능은 무엇이 있을까?

  • 자율 주행 자동차: 테슬라, 구글, 현대자동차&네이버
     
  • 스마트 스피커(AI 비서): 아마존, 구글, 바이두, 알리바바, 샤오미, KT, SK 텔레콤, 네이버, 카카오, 삼성전자 등
     
  • 챗봇: 카카오 상담톡, 네이버 톡톡, 라인, 채널톡 등
     
  • 인공지능 로봇: 청소 로봇, 교육용 로봇, 동반자 로봇, 운송 로봇
     
  • 이미지 인식: 페이스북, 구글, 마이크로소프트, 네이버
     
  • 개인화 추천: 넷플릭스,구글, 페이스북
     
  • 기계 번역: 구글, 네이버 파파고

 

 

 

 

Posted by 요지
,