在图表中表示重复值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在图表中表示重复值相关的知识,希望对你有一定的参考价值。

我正在使用c#中的基本图表,我在我的代码中遇到了一个问题,如果我的表中有一个重复的类别,具有不同的日期,则该类别在我的表中重复。

我认为这可以用SQL而不是C#来解决,但我有点难过。

这是我的表:

Table Design

这是我的代码:

if (selectedLocation == "All")
{

string selectAllQuery = "SELECT category, counter, date, locationName FROM categoryData WHERE locationName IN (@location, @location2, @location3) AND date BETWEEN @startDate AND @endDate ORDER BY locationName, category";
SqlCommand cmd = new SqlCommand(selectAllQuery, con);
cmd.Parameters.AddWithValue("@startDate", startDate);
cmd.Parameters.AddWithValue("@endDate", endDate);
cmd.Parameters.AddWithValue("@location", "Front Desk");
cmd.Parameters.AddWithValue("@location2", "Harold Cohen");
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
    this.resultChart.Series["Footfall"].Points.AddXY(reader.GetString(0), reader.GetInt32(1));
    resultChart.ChartAreas["main"].AxisX.Interval = 1;

Chart

如您所见,如果我有一个具有不同日期的重复类别,则该类别是重复的。我试图将两行中具有重复值的行的值相加。

编辑:我有点进一步,现在我可以聚合具有共同类别的行,但我想为每个聚合列添加计数器。

SELECT category, COUNT(id) as count, locationName FROM categoryData WHERE locationName IN (@location, @location2, @location3) AND date BETWEEN @startDate AND @endDate GROUP BY locationName, category ORDER BY locationName, category
答案

同意Alex Zen。

您的查询应返回所有值,但DB中的每一行都将作为自己的结果返回,因为程序不知道您认为的“相同类别”。您可以在代码(使用linq)或T-SQL中添加GROUP BY并指定您认为相同的内容(在本例中为Category),您应该能够总结该类别的总计。

以上是关于在图表中表示重复值的主要内容,如果未能解决你的问题,请参考以下文章

在数据库中表示“重复事件”的最佳方式是啥?

如何在java中的内存中表示null [duplicate]

在java中表示树层次结构[重复]

如何在ggplot中表示boxplots的离群值频率?

符号 => 在 Type 脚本和 ES6 中表示的内容 [重复]

在 Katai 中表示 Double 值