SQL help

GT9

Well-known member
  • Jun 22, 2013
    1,564
    167
    63
    [email protected]
    මචංල මගේ ටේබල් එකක් තියෙනව. මට ඕන ඒ ටේබල් එකෙන් කස්ටමයිස්ඩ් රිසල්ට් සෙට් එකක් ගන්න.

    උදා-

    මට එක query එකෙන්ම ගන්න ඕන. where country = sri lanka එකේ count එක. අතුලු ඒ වගේ කීපයක්ම.

    මට තියෙන ගැටලුව තමයි.

    කොහොමද select කමාන්ඩ් එකින් එකට ඒකටම වෙන් වෙච්ච where condition එකක් යූස් කරන්නේ කියල. :D
     

    RandomGuy

    Well-known member
  • Oct 15, 2014
    17,361
    16,192
    113
    SELECT COUNT(column_name) FROM table_name where country='country';

    ohoma weda karanne nadda?
     
    Last edited:
    • Like
    Reactions: GT9

    GT9

    Well-known member
  • Jun 22, 2013
    1,564
    167
    63
    [email protected]
    SELECT COUNT(column_name) FROM table_name;

    ?

    ප්‍රශ්නෙ තමයි මචං හිතන්න ටේබල් එකේ තියෙන country කියල column එකකක්. ඒකේ රටවල් 3ක් තියෙනව srilanka, usa, uk කියල මට මචංල එක query එකෙන්ම මෙන්න මේ රිසල්ට් 3න ගන්න ඕන.

    select country from customers where country = srilanka; -> COUNT
    select country from customers where country = usa; -> COUNT
    select country from customers where country = uk; -> COUNT

    එන රිසල්ට් සෙට් එකේ columns 3 ක් තියෙන්න ඕන ඕන ඒ තුනේ ඔය රටවල් තුනේ ඉන්න කස්ටමර්ස්ල ගාන වැඩෙන්න ඕන. ඒකියන්නේ එක row එකක් විතරක් තියෙන result සෙට් එකක් තමයි ඕන.
     

    GT9

    Well-known member
  • Jun 22, 2013
    1,564
    167
    63
    [email protected]
    Pahadili madi ban, ubata wenna ona dewal tika excel ekaka karala screen shot ekak dapan.

    ගැටලුව මචෝ මෙන්න මේකයි. මට ඕන මම යූස් කරන select ස්ටේට්මන්ට් එක ගාන ඒකට විතරක් ආදලව where condion එකක් යූස් කරන්න. ඔක්කොම select වලට පොදු where condition එකක් යූස් කරන්න නෙමේ. :yes:
     

    roshan18u

    Active member
  • Apr 24, 2009
    229
    78
    28
    select sum(lk), sum(usa), sum(uk)
    from (
    select count(*) as lk, 0 as usa , 0 as uk from customers where country = srilanka
    union all
    select 0 as lk, count(*) as usa , 0 as uk from customers where country = usa
    union all
    select 0 as lk, 0 as usa , count(*) as uk from customers where country = uk
    );
     

    GT9

    Well-known member
  • Jun 22, 2013
    1,564
    167
    63
    [email protected]
    Code:
    select SUM(country='S') as C , SUM(country='L') as L , SUM(country='R') as L from customers where country='S' or country='L' or country='R';

    oka hadala ganna

    තෑන්ක්ස් මචං රිප්ලයි එකට. union all තමයි මට ඕන කරල තිබ්බේ. :D

    select sum(lk), sum(usa), sum(uk)
    from (
    select count(*) as lk, 0 as usa , 0 as uk from customers where country = srilanka
    union all
    select 0 as lk, count(*) as usa , 0 as uk from customers where country = usa
    union all
    select 0 as lk, 0 as usa , count(*) as uk from customers where country = uk
    );

    අහ් මේ තියෙන්නේ මට ඕන දේ. වැඩ කරනව මචං තිතතට. තෑන්ක්ස් මචෝ. බේසික් crud කාරට union කියන වචනෙ අහල තිබ්බට. අද තමයි ප්‍රැක්ටිකලි යූස් වෙන්නේ.

    බොහොම ස්තුතීයි මචං. :D:yes::yes:
     
    • Like
    Reactions: NO_MeRcY

    Kasun k

    Well-known member
  • Mar 11, 2009
    10,357
    492
    83
    United States
    ප්‍රශ්නෙ තමයි මචං හිතන්න ටේබල් එකේ තියෙන country කියල column එකකක්. ඒකේ රටවල් 3ක් තියෙනව srilanka, usa, uk කියල මට මචංල එක query එකෙන්ම මෙන්න මේ රිසල්ට් 3න ගන්න ඕන.

    select country from customers where country = srilanka; -> COUNT
    select country from customers where country = usa; -> COUNT
    select country from customers where country = uk; -> COUNT

    එන රිසල්ට් සෙට් එකේ columns 3 ක් තියෙන්න ඕන ඕන ඒ තුනේ ඔය රටවල් තුනේ ඉන්න කස්ටමර්ස්ල ගාන වැඩෙන්න ඕන. ඒකියන්නේ එක row එකක් විතරක් තියෙන result සෙට් එකක් තමයි ඕන.

    Count aka aran group by akak danna. Athakota oyata Country kiyana column aken group wela count aka anawa.
     
    • Like
    Reactions: GT9

    3rdEye

    Member
    Mar 21, 2014
    4,465
    401
    0
    Count aka aran group by akak danna. Athakota oyata Country kiyana column aken group wela count aka anawa.

    මේක කරා නම් ඔය තරම් නටන්න ඕන නැහැ මන් හිතන විදියට :P:P
     

    GT9

    Well-known member
  • Jun 22, 2013
    1,564
    167
    63
    [email protected]
    Ow ban. Podi scene akak :yes:

    මචං group by එකේදී හැම select statement එකකටම වෙන වෙනම අදාල වෙන whare clause යූස් කරන්න පුලුවනිද? එහෙම පුලුවන්නම් නියමයි. මොකද මම දැන් කරල තියෙන විදියෙන් එන්නේ ලිස්ට් එකක්. column විදියට එනවනම් column name එකට refer කරල value එක ගන්න පුලුවන්. දැන් මම කරල තියෙන්නේ. මගේ කස්ටම් array එකක් එක්ක result array එක මෙන්න මේ විදියට array_combine($keys, $values); කම්බයින් කරල අරන් තියෙන්නේ. මමත් මේකට එච්චර කැමති නෑ මොකද field keys array එකක් hardcode කරන්න වෙන නිසා. :sorry:
     

    GT9

    Well-known member
  • Jun 22, 2013
    1,564
    167
    63
    [email protected]
    මේක කරා නම් ඔය තරම් නටන්න ඕන නැහැ මන් හිතන විදියට :P:P

    අයිඩියා එකක් දෙන්න මචෝ. මම කසුන් ගේ රිප්ලයි එකට දාපු රිප්ලයි එක පොඩ්ඩක් බලන්න. :P:D
     

    Chamath2015

    Member
    Aug 29, 2015
    4,745
    576
    0
    Moratuwa
    තෑන්ක්ස් මචං රිප්ලයි එකට. union all තමයි මට ඕන කරල තිබ්බේ. :D



    අහ් මේ තියෙන්නේ මට ඕන දේ. වැඩ කරනව මචං තිතතට. තෑන්ක්ස් මචෝ. බේසික් crud කාරට union කියන වචනෙ අහල තිබ්බට. අද තමයි ප්‍රැක්ටිකලි යූස් වෙන්නේ.

    බොහොම ස්තුතීයි මචං. :D:yes::yes:

    Union danna one na. mechcharai tiyenne karanna.
    http://sqlfiddle.com/#!9/e2ede/2
     
    • Like
    Reactions: 3rdEye