2017-10-13 4 views
0

J'ai une table à partir de cette classe avec les noms de colonnes correspondant à tous les champs de la classe:Y at-il un moyen d'obtenir une moyenne des valeurs dans quatre colonnes avec un seul SQL en utilisant SQLITE?

public class ClickHistory 
{ 
    [PrimaryKey, NotNull] 
    public string Yymmdd { get; set; } 
    public int DayOfYear { get; set; } 
    public int Year { get; set; } 
    public int Month { get; set; } 
    public int Day { get; set; } 
    public int BtnACount { get; set; } 
    public int BtnBCount { get; set; } 
    public int BtnCCount { get; set; } 
    public int BtnDCount { get; set; } 
} 

Ce que je voudrais faire est d'obtenir une valeur moyenne de la sam de toutes les Btn .. colonnes sur toutes les lignes de la table.

Déjà je reçois un nombre d'une ligne comme ceci:

return db2.ExecuteScalar<int>("SELECT (BTNACOUNT + BTNBCOUNT + BTNCCOUNT + BTNDCOUNT) FROM CLICKHISTORY WHERE YYMMDD = " + yymmdd); 
     } 

Mais comment puis-je changer cela, je peux obtenir une moyenne sur toutes les lignes?

Répondre

2

Vous recherchez la fonction AVG. Vous pouvez jouer avec elle dans ce fiddle

Mais il suffit de modifier votre requête dans quelque chose comme:

SELECT AVG(btnACount + btnBCount + btnCCount + btnDCount) FROM ClickHistory; 

Qu'est-ce que cela va faire est la somme de toutes les colonnes, puis prennent en moyenne pour chacune de ces sommes.