mysql - 我如何计算一行拥有多少个不同的值?

标签 mysql sql sqlite

假设我有一个纸质路线数据库。

Create table routes(route_number varchar(100), route_length varchar(1000)
Create table deliverers(deliv_name varchar(100))
Create table deliveries(Deliv_name varchar(100), route_number varchar(100), 
                        number_of_papers varchar(100), date_of delivery date(yyyy-mm-dd))

(我知道这还不完整,但我们不需要知道这个例子的 key )

我想知道每个送货员的路线数量,而不是每条路线上的送货量。如果送货员A有3条路线,他一年在这条路线上送货100次,我只想知道他有多少条路线。

我想我需要使用集合论或外连接,但到目前为止我无法解决这个问题。

最佳答案

试试这个:

SELECT deliverers.deliv_name As DeliveryPerson, COUNT(DISTINCT route_number) As RoutesCount
FROM deliverers 
INNER JOIN deliveries ON deliveries.Deliv_name =  deliverers.deliv_name
GROUP BY (deliverers.deliv_name)

关于mysql - 我如何计算一行拥有多少个不同的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42665699/

相关文章:

php - PHP 表中的货币格式从数据库获取价格

sql - 使用 PostgreSQL 从稀疏表中检索两列、批量、随机访问

SQL (Oracle) - 如何从两个计数语句中获取比率?

android - getWriteableDatabase 处的 NullPointerException

mysql - 子查询作为另一个字段

php - 在 php 5.3 版本上将 mysql 类转换为 mssql 类

php - 在数据库中转换/保存用户提交的 "Time"

SQL - 按动态权重查询

c++ - SQLite查询进度条

c# - 在 C# 中,有什么方法可以将内存中的文件作为内存中的 SQLite 数据库与 System.Data.SQLite 链接?