在一个查询中获取多个计数的输出

时间:2017-10-11 04:16:04

标签: sql-server

您能否帮我解决以下问题: 有两个表: 表人:

P_id     Name     BirthDate
1            N1       2016-08-02
2            N2       2015-05-02
3            N3       2013-06-01
4            N4       2014-01-09

访问过的表:( p_id是表人的外键)

Id.     Visitor_id.     P_id.     Visit_date
1          10              1         2017-03-05
2          11              2         2017-01-01
3          10              2         2017-02-03
4          12              3         2016-05-07
5          11              4         2016-04-09
6          10              1         2017-04-09

我们将获得每位访问者访问的次数,以及访问日期在1岁以下,1到2岁之间,访问日期为2到3岁之间的被访问人员的数量。 visitor_id。 结果应该是:

                    Under_one                       Bet_one_two                        Bet_two_three 
Visitor_id      VisitedCount/PersonCount        VisitedCount/PersonCount        VisitedCount/PersonCount
10                  2             1             1             1                    0           0
11                  0             0             1             1                    1           1
12                  0             0             0             0                    1           1

1到2之间意味着减去visited_date和birthdate(例如:2013/03/05 - 2011/06/07的结果)的结果是1到2年。

1 个答案:

答案 0 :(得分:1)

我不知道我是否可以按照你的指定给你输出的输出,但是这个

override func prepare(for segue: UIStoryboardSegue, sender: Any?)
{
    let nextViewController = segue.destination as! SelectedEventViewController
    if let indexPath = tableView.indexPathForSelectedRow {
        let selectedRow = indexPath.row
        nextViewController.recievedArray = [self.eventArrayData[selectedRow]]
    }
}

返回

SELECT
 visited.Visitor_id,
 visited.P_id,
 Int(([Visit_date]-[BirthDate])/365) AS Age,
 Count(persons.P_id) AS NumVisits
FROM persons INNER JOIN visited ON persons.P_id = visited.P_id
GROUP BY
 visited.Visitor_id,
 visited.P_id,
 Int((-[BirthDate]+[Visit_date])/365);