如何在列中计算相同的名称?

时间:2017-05-23 00:44:05

标签: c# windows winforms ms-access oledb

这是我的专栏,显示了用户投票的总统姓名:

snapshot

我需要计算这些名字才能显示选举结果。如何使用select count()和group by?

来计算它

3 个答案:

答案 0 :(得分:0)

以下SQL应该可以解决问题。

try { //When parsing JSON, you need try catch to handle error if occure
    JSONObject fullJSON = new JSONObject("{\"response\":200,\"department\":[\"Information Technology\"],\"subject\":[\"ads(th)\"],\"professional\":[\"cg(th)\",\"cg(lab)\"],\"semester\":[\"3A\",\"5A\",\"5A\"]}");
    int response = fullJSON.getInteger("response");
    JSONArray departement = fullJSON.getJSONArray("department");
    Log.i("", departement.getString(0));
    JSONArray semester = fullJSON.getJSONArray("semester");
    for(int i=0; i<semester.length(); i++) {
        Log.i("semester", semester.getString(i));
    }
} catch (JSONException e) {
    //here's the error message you can get from
    e.printStackTrace();
}

答案 1 :(得分:0)

从v.President的tbl_voter v group中选择v.President,count(v.President);

您需要在计数功能上添加要计数的列的名称,并在同一列中使用该组。

答案 2 :(得分:0)

如果您想使用LINQ,则需要为记录提供IQueryable。之后很容易:

IQueryable<VotingRecord> votingRecords = ...
votingRecords.GroupBy(votingRecord => votingRecord.President)
.Select(presidentGroup => new
{
    President = presidentGroup.Key,
    VoteCount = presidentGroup.Count(),
});

GroupBy将成为投票给同一位总统的VotingRecords小组。该组的Key是总统的名字。小组中的所有VotingRecords都投票支持此Key总统。

Select占据每个小组,每个小组占用总统Key和该小组的VotingRecords数,即总统的投票数。

结果是一系列记录Presidents以及此总统的投票数。

顺便说一下,让我们希望适当的民主国家不会实施这个数据库,因为这样很容易找出谁投票给谁。