Q:

Possible to assign a query-result like a temporary 'table'? 

I want to perform some further data processing on the result of a query - my query here is :
SELECT id, gamenumber, team, name, points 
FROM games
WHERE gamenumber IN (
    SELECT gamenumber
    FROM games
    WHERE
        (name = 'Tom Smith' AND team = 'team tower') OR
        (name = 'Andy Cooper' AND team = 'team windy')
    GROUP BY gamenumber
    HAVING MIN(name) <> MAX(name)
);

Which produces this result :
gamenumber  team    name    points
1000    team tower  Tom Smith   100
1000    team vegas  John Little 90
1000    team windy  Andy Cooper 20
1003    team tower  Tom Smith   89
1003    team bars   Jonathan Swift  21
1003    team hammock    Bill Mccain 31
1003    team windy  Andy Cooper -1

But i need to dig deeper into this, and then based on the result here ex summarize values. 
So i was thinking if it was possible to give a query result a 'name' in SQL ?  so i ex i could do something like this ( naming the result of the query to TEMP_TABLE ):
TEMP_TABLE = SELECT id, gamenumber, team, name, points 
FROM games
WHERE gamenumber IN (
    SELECT gamenumber
    FROM games
    WHERE
        (name = 'Tom Smith' AND team = 'team tower') OR
        (name = 'Andy Cooper' AND team = 'team windy')
    GROUP BY gamenumber
    HAVING MIN(name) <> MAX(name)
);

And then i could do something like this :
SELECT * FROM TEMP_TABLE

Is something like this possible ?  

A:

You have two different options.   The one you choose depends on how fresh you need the data to be. 
A TEMPORARY TABLE is siloed away from the original data set that was queried.   If the original data changes, the temporary table is unaffected...
CREATE TEMP TABLE temp_table AS
SELECT id, gamenumber, team, name, points 
FROM games
WHERE gamenumber IN (
    SELECT gamenumber
    FROM games
    WHERE
        (name = 'Tom Smith' AND team = 'team tower') OR
        (name = 'Andy Cooper' AND team = 'team windy')
    GROUP BY gamenumber
    HAVING MIN(name) <> MAX(name)
);

A TEMPORARY VIEW, however, will update whenever the original data set updates...
CREATE TEMP VIEW temp_view AS
SELECT id, gamenumber, team, name, points 
FROM games
WHERE gamenumber IN (
    SELECT gamenumber
    FROM games
    WHERE
        (name = 'Tom Smith' AND team = 'team tower') OR
        (name = 'Andy Cooper' AND team = 'team windy')
    GROUP BY gamenumber
    HAVING MIN(name) <> MAX(name)
);

Keep in mind, if the temp table or view name matches an existing permanent table or view, it will pull data from there!   To avoid this, prefix the table names with temp.  as shown below...
SELECT * FROM temp.temp_table;
SELECT * FROM temp.temp_view;

