Информация об изменениях

Сообщение Функция zip, join Postgresql от 04.12.2021 18:32

Изменено 04.12.2021 18:32 avovana

Re: Функция zip, join Postgresql
Требуется реализовать функцию zip, которая соединяет элементы двух слайсов в слайс пар

func main() {
    s1, s2 := []int{1, 2, 3}, []int{4, 5, 6, 7, 8}
    fmt.Println(zip(s1, s2)) // [[1 4] [2 5] [3 6]]
}

func zip(s1 []int, s2 []int) [][]int {
    //...
}
// Моё решение. Сделал объединение в пары:
std::vector<int> s1 {1, 2, 3};
std::vector<int> s2 {4, 5, 6, 7, 8};

std::vector<std::pair<int, int>> zip(std::vector<int> s1, std::vector<int> s2) {
    std::vector<std::pair<int, int>> res;
    int size = std::min(s1.size(), s2.size());
    res.reserve(size);

    for(int i = 0; i < size; ++i) {
        int el1 = s1[i];
        int el2 = s2[i];

        std::pair<int, int> pair = {s1[i], s2[i]};
        res.push_back(pair);
    }
    return res;
}

//----------------------

Есть база с такой схемой данных

// user
id | firstname | lastname | birth
1  | Ivan      | Petrov   | 1996-05-01
2  | Anna      | Petrova  | 1999-06-01      

// purchase
sku   | price | user_id | date
11111 | 5500  | 1       | 2021-02-15
22222 | 4000  | 1       | 2021-02-14
33333 | 8000  | 2       | 2021-03-01
44444 | 400   | 2       | 2021-03-02

// ban_list
user_id | date   
1       | 2021-03-08

Нужно вывести:
Список уникальных клиентов и купленных ими товаров в феврале
Функция zip, join Postgresql
Требуется реализовать функцию zip, которая соединяет элементы двух слайсов в слайс пар

func main() {
    s1, s2 := []int{1, 2, 3}, []int{4, 5, 6, 7, 8}
    fmt.Println(zip(s1, s2)) // [[1 4] [2 5] [3 6]]
}

func zip(s1 []int, s2 []int) [][]int {
    //...
}
// Моё решение. Сделал объединение в пары:
std::vector<int> s1 {1, 2, 3};
std::vector<int> s2 {4, 5, 6, 7, 8};

std::vector<std::pair<int, int>> zip(std::vector<int> s1, std::vector<int> s2) {
    std::vector<std::pair<int, int>> res;
    int size = std::min(s1.size(), s2.size());
    res.reserve(size);

    for(int i = 0; i < size; ++i) {
        int el1 = s1[i];
        int el2 = s2[i];

        std::pair<int, int> pair = {s1[i], s2[i]};
        res.push_back(pair);
    }
    return res;
}

//----------------------

Есть база с такой схемой данных

// user
id | firstname | lastname | birth
1  | Ivan      | Petrov   | 1996-05-01
2  | Anna      | Petrova  | 1999-06-01      

// purchase
sku   | price | user_id | date
11111 | 5500  | 1       | 2021-02-15
22222 | 4000  | 1       | 2021-02-14
33333 | 8000  | 2       | 2021-03-01
44444 | 400   | 2       | 2021-03-02

// ban_list
user_id | date   
1       | 2021-03-08

Нужно вывести:
Список уникальных клиентов и купленных ими товаров в феврале