Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Can Count(), CASE(), and Distrinct be combined?
Message
De
28/01/2019 19:43:55
 
 
À
28/01/2019 17:08:19
Cetin Basoz
Engineerica Inc.
Izmir, Turquie
Information générale
Forum:
Visual FoxPro
Catégorie:
Base de données, Tables, Vues, Index et syntaxe SQL
Divers
Thread ID:
01665760
Message ID:
01665786
Vues:
55
>>>>Hi,
>>>>
>>>>I am trying to count unique values in the field (using SQL Select) if the value is greater than 0
>>>>
>>>>So, here is syntax I use (simplified) (which generates an error):
>>>>
>>>>select count( case when mytable.myfield = 0 then 0 else distinct( mytable.myfield ) end ) as TotCount
>>>>
>>>>
>>>>What is wrong in the above syntax?
>>>>
>>>>TIA
>>>
>>>
select count( distinct  mytable.myfield ) as TotCount from myTable where mytable.myfield <> 0
>>
>>The SQL Select must include all records, even those that have the value of mytable.myfield equal to 0 (zero). So I cannot use the WHERE as you suggested.
>>Please see Naomi's reply as the solution.
>>Thank you.
>
>How is that different, other than doing the same thing in an unnecessarily peculiar way?
>
>Here is demo link:
>
>https://dbfiddle.uk/?rdbms=sqlserver_2017&fiddle=5ff29037f75de1d5939272329523c434

Here is an example of a table and the result I am trying to get. Let me know how I would apply your approach to it:
Sample table

FIELD1      FIELD2
ABC           1
CBS           2
ABC           1
NBC           3
NBC           2
CBS           0
ABC           1
NBC           0
NBC           0
CBS           2
CBS           0
CBS           3
ABC           0
XYZ           0
NBC           5
NBC           5
XYZ           0

Report                    Explanation
ABC          1           There is only 1 value of ABC (other than 0)
CBS          2            There are 2 different values of CBS (other than 0)
NBC          3           There are 3 different values of NBC (other than 0)
XYZ          0           There are no different value of XYZ (other than 0)
"The creative process is nothing but a series of crises." Isaac Bashevis Singer
"My experience is that as soon as people are old enough to know better, they don't know anything at all." Oscar Wilde
"If a nation values anything more than freedom, it will lose its freedom; and the irony of it is that if it is comfort or money that it values more, it will lose that too." W.Somerset Maugham
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform