programing

특정 순서에 따른 SQL 순서

sourcejob 2023. 8. 27. 09:07
반응형

특정 순서에 따른 SQL 순서

따라서 현재 결과 세트를 사용하면 다음과 같은 결과를 얻을 수 있습니다.
current

그리고 저는 다음과 같은 것을 얻기 위해 이것을 주문하고 싶습니다.

코드:

select count(*) as aantal_keer, concat(cast(t2.klant1 as char), '-', cast(t2.klant2 as char)) as pairname
from (
    select t.klant1, t.klant2, t.datum1, t.datum2, count(*) as aantal_overeenkomsten
    from (
        select a1.klant_idklant as klant1, a2.klant_idklant as klant2, a1.datum as datum1, a2.datum as datum2
        from aankoop a1, aankoop a2 where a2.product_idproduct = a1.product_idproduct and a2.klant_idklant < a1.klant_idklant
    ) t
    group by datum1, datum2
    having aantal_overeenkomsten > 3
) t2
group by pairname
order by pairname;

해라castinginteger로.char그리고.order따로따로

select count(*) as aantal_keer, concat(cast(t2.klant1 as char), '-', cast(t2.klant2 as char)) as pairname
from (
    select t.klant1, t.klant2, t.datum1, t.datum2, count(*) as aantal_overeenkomsten
    from (
        select a1.klant_idklant as klant1, a2.klant_idklant as klant2, a1.datum as datum1, a2.datum as datum2
        from aankoop a1, aankoop a2 where a2.product_idproduct = a1.product_idproduct and a2.klant_idklant < a1.klant_idklant
    ) t
    group by datum1, datum2
    having aantal_overeenkomsten > 3
) t2
group by pairname
order by cast(T1 AS char), cast(T2 AS char);

피들 데모

출력은 다음과 같습니다.

enter image description here

klant1과 klant2의 문자열 버전으로 간단하게 주문하세요.

select count(*) as aantal_keer, 
 concat(klant1, '-', klant2) as pairname
from (
    select t.klant1, t.klant2, t.datum1, t.datum2,
    count(*) as aantal_overeenkomsten
    from (
        select a1.klant_idklant as klant1, 
        a2.klant_idklant as klant2, a1.datum as datum1, a2.datum as datum2
        from aankoop a1
        join aankoop a2 on a2.klant_idklant < a1.klant_idklant and a2.product_idproduct = a1.product_idproduct
    ) t
    group by datum1, datum2
    having aantal_overeenkomsten > 3
) t2
group by klant1, klant2
order by cast(klant1 as char), cast(klant2 as char);

두 개의 숫자로 시작하는 경우:

SELECT concat(T1, '-', T2) FROM tbl
    order by  T1, T2;

시작할 때 쌍을 이룬 숫자로 시작하는 경우 다음과 같이 분할합니다.

SELECT xx_yy FROM tbl
    ORDER BY SUBSTRING_INDEX(xx_yy, '-', 1),
             SUBSTRING_INDEX(xx_yy, '-', -1)

언급URL : https://stackoverflow.com/questions/58953653/sql-order-by-specific-order

반응형