[SQL] 첫 번째 문자로 그룹
SQL첫 번째 문자로 그룹
나는 오라클 SQL에서 쿼리에 문제가 있습니다.
나는 직원 테이블의 FIRST_NAME 열 수 있습니다. 나는 FIRST_NAME의 첫 번째 문자에 따라 내 기록 그룹화하려는.
예를 들어, 내가 26 개 기록, 이름 하나를 가지고 = '앨리스', 이름을 가진 하나 = 등 각 이름의 첫 번째 문자의 알파벳 아래에 '밥'. 쿼리 후, 한 직원이 각각 26 개 그룹이 있어야합니다.
나는 다음을 시도했지만 작동하지 않습니다 :
SELECT employee_id, (SUBSTR(first_name,1,1)) AS alpha FROM employees
GROUP BY alpha;
name_which_starts_from employees
A 10
B 2
C 4
D 9
E 3
G 3
H 3
I 2
J 16
K 7
L 6
M 6
N 4
O 1
P 6
R 3
S 13
T 4
V 2
W 3
해결법
-
==============================
1.당신이 직장에 그렇게하려는 경우 EMPLOYEE_ID에 대한 몇 가지 집계 기능을 수행해야하기 때문에 귀하의 쿼리는 잘못된 것입니다.
당신이 직장에 그렇게하려는 경우 EMPLOYEE_ID에 대한 몇 가지 집계 기능을 수행해야하기 때문에 귀하의 쿼리는 잘못된 것입니다.
처럼:
select substr(first_name,1,1) as alpha, count(employee_id) from employees group by substr(first_name,1,1)
정확히 무엇을 달성하려고?
-
==============================
2.당신이 SELECT 투사에 employee_id입니다 가질 수 있도록, 집계 함수가 아닙니다 모든 그룹화해야합니다. 또한 FIRST_NAME 단지 첫 번째 문자로 그룹이 필요합니다. 이런 식으로 뭔가 작업을해야합니다 :
당신이 SELECT 투사에 employee_id입니다 가질 수 있도록, 집계 함수가 아닙니다 모든 그룹화해야합니다. 또한 FIRST_NAME 단지 첫 번째 문자로 그룹이 필요합니다. 이런 식으로 뭔가 작업을해야합니다 :
SELECT SUBSTR(first_name, 1, 1) AS alpha, COUNT(*) AS employee_count FROM employees GROUP BY SUBSTR(first_name, 1, 1);
그 것이 이름의 첫 글자로 그룹 및 해당 그룹에 속하는 직원의 수를 보여줍니다.
-
==============================
3.당신이 다음 26 개 첫 번째 열에으로 A, B, C로 반환 된 레코드와 구분 된 목록에있는 모든 직원의 ID를 포함하는 두 번째 열을 원하는 것 거의 소리가 난다. 그래서 질문 468990 참조 및 / 또는 경우이 톰 링크를 요청합니다. 같은 뭔가 (테스트되지 않은)
당신이 다음 26 개 첫 번째 열에으로 A, B, C로 반환 된 레코드와 구분 된 목록에있는 모든 직원의 ID를 포함하는 두 번째 열을 원하는 것 거의 소리가 난다. 그래서 질문 468990 참조 및 / 또는 경우이 톰 링크를 요청합니다. 같은 뭔가 (테스트되지 않은)
SELECT SUBSTR(first_name,1,1), TO_STRING( CAST( COLLECT( employee_id ) AS ntt_varchar2 ) ) AS empIDs FROM employees GROUP BY SUBSTR(first_name,1,1);
-
==============================
4.나는 비슷한 문제를 가지고 문으로이 문제를 해결 :
나는 비슷한 문제를 가지고 문으로이 문제를 해결 :
S ASC에 의해 S 명령에 의해 table_words 군으로부터 SUBSTR S 등 (워드, 1, 1), 카운트 (워드)을 선택
-
==============================
5.당신이 그룹화하는 경우, 집계되지 않은 사용자의 선택 목록에 표시되는 모든 열은 (employee_id입니다하지 않는)도 절 "에 의해 그룹의"에 표시해야합니다.
당신이 그룹화하는 경우, 집계되지 않은 사용자의 선택 목록에 표시되는 모든 열은 (employee_id입니다하지 않는)도 절 "에 의해 그룹의"에 표시해야합니다.
당신은 당신이하려고하는 어떤 명확히 수 있을까?
-
==============================
6.레일 / 포스트 그레스에서 그 같은 힘 모습 뭔가
레일 / 포스트 그레스에서 그 같은 힘 모습 뭔가
group_clause = 'UPPER(LEFT(name, 1))' Division.group(group_clause).order(group_clause).pluck(group_clause, 'COUNT(id)')
-
==============================
7.난 내가 당신이 뭘 하려는지 알고 있다고 생각 ...
난 내가 당신이 뭘 하려는지 알고 있다고 생각 ...
당신은 칼럼 '편지'와 작은 참조 테이블을 만들어야합니다 (문자, SORT_ORDER)
당신은 당신의 쿼리를해야
, l.letter를 선택 직원으로 (e.id) 계산 문자 l에서 외부 l.letter = SUBSTR에 직원 E 가입 좌 (e.first_name 1,1)
다른 대답은 이름에 특정 문자로 어떤 직원이없는 경우 당신에게 예기치 않은 결과를 줄 것이다 게시 ...
from https://stackoverflow.com/questions/666525/group-by-first-character by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 어디에서 검색 조건을 '%'를 사용하여 SQL 'LIKE'쿼리 '%'포함 (0) | 2020.06.07 |
---|---|
[SQL] 또 다른 하나의 데이터베이스에서 MySQL을 삽입] (0) | 2020.06.07 |
[SQL] MySQL은 "LIMIT 1"을 사용하여 어느 시점이 있습니까 색인 / 고유의 필드에 쿼리 할 때? (0) | 2020.06.07 |
[SQL] 1 년 동안 매달 기록을 카운트 (0) | 2020.06.07 |
[SQL] 많은 곳에서 GETDATE ()를 사용하는 경우, 더 나은 변수를 사용하는 것입니다? (0) | 2020.06.07 |