mysql中的表包含以下记录:
+----------+----------+-----------+---------+-------+
| PersonID | LastName | FirstName | Address | City |
+----------+----------+-----------+---------+-------+
| 1 | Kumar | Amit | Sec-22 | Noida |
| 2 | Kapoor | X | Sec-24 | Noida |
| 3 | Kapoor | Y | Sec-22 | Delhi |
| 4 | Kapoor | Z | Sec-25 | Delhi |
| 5 | Kapoor | W | Sec-25 | Gzb |
+----------+----------+-----------+---------+-------+
当我运行以下查询时:
select City, FirstName from Persons group by City;
以下是显示的结果:
+-------+-----------+
| City | FirstName |
+-------+-----------+
| Delhi | Y |
| Gzb | W |
| Noida | Amit |
+-------+-----------+
我不明白为什么每个城市的所有firstNames都没有显示在表格中,因为每个Noida和德里都有2条记录,Gzb有1条记录
请帮助我理解这种行为。
答案 0 :(得分:0)
在MYSQL
中分组,返回第一行条目,并根据具有过滤器分组的列对其余条目进行分组。
在你的情况下,德里有Y和Z,它分成1排但是会显示Y,因为那是第一排。我不确定MS-SQL
,我认为其工作原理与分组工作方式相同MYSQL
答案 1 :(得分:0)
分组显示您的第一个条目。
进行此查询:
<Style TargetType="DataGridCell">
<Style.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsReadOnly" Value="False" />
<Condition Property="IsMouseOver" Value="True" />
</MultiTrigger.Conditions>
<Setter Property="IsEditing" Value="True" />
</MultiTrigger>
</Style.Triggers>
</Style>
您将按分组计算。我认为查询:
select count(*) from Persons group by City;
对你想要的东西更有用。
答案 2 :(得分:0)
@Amitsh
通常,Group By与聚合函数一起使用(聚合数据)。
假设FirstName是一个“字符”字段,因此解释器默认情况下将FirstName列为FIRST()值。
您可以获得预期的输出,如果假设,每个人都有一个工资列,并且您希望显示城市中获得的工资。 (只是一个例子)
您可以参考以下链接来了解Group By的应用。
如果您告诉我们您对此查询的期望,我们会帮助您。
参考:
答案 3 :(得分:0)
当您执行GetModuleHandle(NULL)
并尝试在同一查询中选择其他一些列时,mysql不保证将从所有列中选择哪个值,它将随机选取一个数据。
在您的情况下,查询是
HMODULE
因此,当您执行group by
select City, FirstName from Persons group by City;
和任意City
对于诸如sum,count等聚合函数,Firstname
以上的内容更为可取。
然而,您可以修改查询以使用group by City
函数将所有名字作为逗号分隔的字符串获取
group by