Abaixo está uma instrução que descreve uma tarefa de geração de SQL, combinada com uma entrada que fornece mais contexto sobre os esquemas de tabela disponíveis. Escreva o código SQL que responda adequadamente à solicitação
 ###Instrução: Qual é a velocidade média dos patinetes elétricos compartilhados em San Francisco, particionada por empresa?
 ###Tabelas: 
CREATE TABLE shared_scooters (scooter_id INT, company VARCHAR(255), speed FLOAT, timestamp TIMESTAMP); INSERT INTO shared_scooters (scooter_id, company, speed, timestamp) VALUES (1, 'CompanyA', 15.5, '2022-01-01 10:00:00'), (2, 'CompanyB', 14.3, '2022-01-01 10:00:00');
SELECT company, AVG(speed) AS avg_speed FROM (SELECT company, speed, TIMESTAMP_TRUNC(timestamp, HOUR) AS truncated_time, ROW_NUMBER() OVER (PARTITION BY company, TIMESTAMP_TRUNC(timestamp, HOUR) ORDER BY timestamp) rn FROM shared_scooters WHERE city = 'San Francisco') WHERE rn = 1 GROUP BY company;