Я изучаю Xamarin, я использую этот [плагин sqlite] [1. Я хотел бы агрегировать значение таблицы по датам (MyCreateDate) и суммировать количество слов (Word1) в этой дате (моль, да).
Например, если у меня есть:
3 words in November 2001, nothing in December 2001, 6 words in january 2002,2 words in febuary 2002, nothing in March 2002.
Я хотел бы получить возврат вроде:
Moth Year NumberWords
11 2001 3
12 2001 0
1 2002 6
2 2002 2
3 2002 0
Вот моя модель Model.cs:
[PrimaryKey, AutoIncrement]
public int ID { get; set; }
[JsonProperty(PropertyName = "id")]
public string MyId { get; set; }
[JsonProperty(PropertyName = "myCreated")]
public DateTime MyCreateDate { get; set; } = DateTime.UtcNow; // with this value of date
[JsonProperty(PropertyName = "myUpdate")]
public DateTime MyUpdateDate { get; set; } = DateTime.UtcNow;
[JsonProperty(PropertyName = "complete")]
public bool Complete { get; set; }
[JsonProperty(PropertyName = "wordissaved")]
public bool WordIsSaved { get; set; } = false;
[JsonProperty(PropertyName = "word1")]
public string Word1 { get; set; }
[JsonProperty(PropertyName = "word2")]
public string Word2 { get; set; }
Вот база данных MyWordsDatabase.cs, мне удалось получить слова и выберите случайные слова:
class MyWordsDatabase
{
private SQLiteAsyncConnection conn;
//CREATE
public MyWordsDatabase()
{
conn = DependencyService.Get<ISQLite>().GetConnection();
conn.CreateTableAsync<MyWords>();
}
//READ
public Task <List<MyWords>> GetWords()
{
var wordList = conn.Table<MyWords>();
return wordList.OrderByDescending(w => w.ID).ToListAsync();
}
// Select ramdon words and put them in a list
public Task<List<MyWords>> GetRandomListWords(int number)
{
var words = conn.QueryAsync<MyWords>("select DISTINCT * from MyWords ORDER BY RANDOM() LIMIT " + number + "");
return words;
}
}
Спасибо за помощь